package commandkit import ( "context" "io" ) // Identity describes the application or component represented by CommandKit. // // Version and Revision are caller supplied metadata. CommandKit does not infer // them from an executable or mutate them. type Identity struct { // Name is the human-readable application or component name. Name string // Version is the caller-supplied version string. Version string // Revision is the caller-supplied source revision. Revision string } // Streams contains the output destinations associated with a command // invocation. type Streams struct { // Out receives help and command reports. Out io.Writer // Err receives diagnostics and usage guidance. Err io.Writer } // Invocation provides execution context and output streams to a command // handler. type Invocation struct { // Context carries caller cancellation and request-scoped values. Context context.Context // Streams are the caller-selected output destinations. Streams Streams enteredPath string canonicalPath string } // EnteredPath returns the command path used to invoke the selected command. // It is empty for an Invocation that was not created by command execution. func (inv Invocation) EnteredPath() string { return inv.enteredPath } // CanonicalPath returns the selected command's canonical path. // It is empty for an Invocation that was not created by command execution. func (inv Invocation) CanonicalPath() string { return inv.canonicalPath }