<commit_before>package atc

// // current
// atc.Plan {
// 	Task: TaskPlan {
// 		// custom resource type
// 		// getvar
// 	}
// }

// // a
// Plan: atc.Plan {
// 	InParallel: {
// 		Plan {
// 			Check: // resource type
// 		},
// 		Plan {
// 			GetVar: // getvar
// 		},
// 	},
// 	Plan {
// 		Task: // references the Check and GetVar
// 	}
// }

// resource_types:
// - name: a
// 	type: registry-image
// - name: b
// 	type a

// resources:
// - name: c
// 	type b

// jobs:
// - name: foo
// 	plan:
// 		- get: c

// Plan: {
// 	OnSuccess {
// 		Step: OnSuccess {
// 			Step: OnSuccess {
// 				Step: OnSuccess{
// 					Step: Check {
// 						ID: 1
// 						Name: "a"
// 						BaseImageType: "registry-image"
// 					}
// 					Next: Get {
// 						ID: 2
// 						Name: "a"
// 						BaseImageType: "registry-image"
// 					}
// 				}
// 				Next: Check {
// 					ID: 3
// 					Name: "b"
// 					ImageSpecFrom: 2
// 				}
// 			}
// 			Next: Get {
// 				ID: 4
// 				Name: "b"
// 				ImageSpecFrom: 2
// 			}
// 		}
// 		Next: Get {
// 			ID: 5
// 			Name: "c"
// 			ImageSpecFrom: 4
// 		}
// 	}
// }

// resource_types:
// - name: a
// 	type: registry-image

// resources:
// - name: b
// 	type: a

// jobs:
// - name: foo
// 	plan:
// 		- get: b

// Plan: {
// 	Get: {
// 		Name: b
// 		ImageCheckPlan: {
// 			OnSuccess: {
//				ID: 0
// 				Step: Check {
// 					ID: 1
// 					Name: a
// 					BaseImageType: registry-image
// 				}
// 				Next: Get {
// 					ID: 2
// 					Name: a
// 					BaseImageType: registry-image
// 					VersionFrom: 1
// 				}
// 			}
// 		}
// 	}
// }

// resource_types:
// - name: a
// 	type: registry-image
// - name: b
// 	type: a

// resources:
// - name: c
// 	type: b

// jobs:
// - name: foo
// 	plan:
// 		- get: c

// Plan: {
// 	Get: {
// 		Name: c
// 		ImageCheckPlan: {
//				ID: 0
// 				Check {
// 					Name: b
// 					ImageCheckPlan: {
// 						ID:
// 						Check: {
//							Name: a
//							BaseImageType: registry-image
//						}
// 					}
// 					ImageGetPlan: {
// 						ID:
// 						Get: {
//							Name: a
//							BaseImageType: registry-image
//						}
// 					}
// 				}
// 			}
// 		ImageGetPlan: {
//				ID: 0
// 				Get {
// 					Name: b
// 					ImageCheckPlan: {
// 						ID:
// 						Check: {
//							Name: a
//							BaseImageType: registry-image
//						}
// 					}
// 					ImageGetPlan: {
// 						ID:
// 						Get: {
//							Name: a
//							BaseImageType: registry-image
//						}
// 					}
// 				}
// 			}
// 		}
// 	}

// Plan: {
// 	Check {
// 		Name: a-check
// 		ImageSpec: // default registry-image
// 	} // produces "abc" and stores in runState["a-check"]
// 	Get: {
// 		Name: a-get
// 		Version: [[a-check]]	// "abc"
// 		Vars: map[string]string {
// 			version: "((a-check))"	// lookup runState.GetVar("a-check") and store resulte in Version
// 		}
// 	}
// 	Check {
// 		Name: b-check
// 		ImageSpec:
// 		Vars: map[string]string {
// 			imagespec: a-get
// 		}
// 	}
// 	Get: {
// 		Name: b-get
// 		Version: b-check
// 	}
// 	Check {
// 		Name: c-check
// 	}
// 	Get: {
// 		Name: c-get
// 		Version: c-check
// 	}
// }

// resource_types:
// - name: vault
// 	type: registry-image
// 	source:
// 		repository: hashicorp/vault

// var_sources:
// - name: z
// - name: a
// 	type: vault
// 	source:
// 		team: a
// 		token: Bearer ((z:token))

// plan:
// - get_var: path
// 	source: a
// - get: foo
// 	params:
// 	- foo: ((.:path))

// Plan: {
// 	GetVar: {
// 		PlanID: "z-get-var"
// 		Name: "z",
// 		Path: "token",
// 	},
// 	Check: {
// 		PlanID: "a-check"
// 	},
// 	Get: {
// 		PlanID: "a-get"
// 	},
// 	GetVar: {
// 		PlanID: "a-get-var"
// 		Name: "a",
// 		Path: "path",
// 		ImageSpec: [[a-get]],	// filled from "a-get"
// 		Source: {	// filled in from global creds
// 			"team": "a",
// 			"token": "Bearer [[z-get-var]]"
// 		},
// 	},	// 1. store result in runState["a:path"]
// 	GetVar: {
// 		PlanID: "b-get-var"
// 		Name: "b",
// 		Path: "path",
// 		Source: atc.Source {	// 2. Source.Evaulate(runState)
// 			"foo": "((a:path))",	// 3. go through and template (()) by looking up runState.GetVar(...)
// 		}
// 	},	// 4. store result in runState["b:path"]
// 	Get: {
// 		PlanID: "get-foo"
// 		Name: "foo",
// 		Params: atc.Params{
// 			"foo": "((.:path))",
// 		}
// 	}
// }

// // b
// atc.PlanContext {
// 	ResourceTypeConfig:
// 	VarSourceConfig:

// 	Plan: atc.Plan {
// 		Task: TaskPlan {
// 			// ResourceTypeConfig and VarSourceConfig gets passed around and dynamically creates new steps
// 		}
// 	}
// }
type Plan struct {
	ID       PlanID `json:"id"`
	Attempts []int  `json:"attempts,omitempty"`

	Get         *GetPlan         `json:"get,omitempty"`
	Put         *PutPlan         `json:"put,omitempty"`
	Check       *CheckPlan       `json:"check,omitempty"`
	Task        *TaskPlan        `json:"task,omitempty"`
	Run         *RunPlan         `json:"run,omitempty"`
	SetPipeline *SetPipelinePlan `json:"set_pipeline,omitempty"`
	LoadVar     *LoadVarPlan     `json:"load_var,omitempty"`

	Do         *DoPlan         `json:"do,omitempty"`
	InParallel *InParallelPlan `json:"in_parallel,omitempty"`
	Across     *AcrossPlan     `json:"across,omitempty"`

	OnSuccess *OnSuccessPlan `json:"on_success,omitempty"`
	OnFailure *OnFailurePlan `json:"on_failure,omitempty"`
	OnAbort   *OnAbortPlan   `json:"on_abort,omitempty"`
	OnError   *OnErrorPlan   `json:"on_error,omitempty"`
	Ensure    *EnsurePlan    `json:"ensure,omitempty"`<commit_msg>remove some unnecessary comments during planning<commit_after>package atc

type Plan struct {
	ID       PlanID `json:"id"`
	Attempts []int  `json:"attempts,omitempty"`

	Get         *GetPlan         `json:"get,omitempty"`
	Put         *PutPlan         `json:"put,omitempty"`
	Check       *CheckPlan       `json:"check,omitempty"`
	Task        *TaskPlan        `json:"task,omitempty"`
	Run         *RunPlan         `json:"run,omitempty"`
	SetPipeline *SetPipelinePlan `json:"set_pipeline,omitempty"`
	LoadVar     *LoadVarPlan     `json:"load_var,omitempty"`

	Do         *DoPlan         `json:"do,omitempty"`
	InParallel *InParallelPlan `json:"in_parallel,omitempty"`
	Across     *AcrossPlan     `json:"across,omitempty"`

	OnSuccess *OnSuccessPlan `json:"on_success,omitempty"`
	OnFailure *OnFailurePlan `json:"on_failure,omitempty"`
	OnAbort   *OnAbortPlan   `json:"on_abort,omitempty"`
	OnError   *OnErrorPlan   `json:"on_error,omitempty"`
	Ensure    *EnsurePlan    `json:"ensure,omitempty"`
{'fraction_non_alphanumeric': 0.20310318076027928, 'fraction_numerical': 0.0027928626842513575, 'mean_word_length': 1.6581443298969072, 'pattern_counts': {'":': 4, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2911400', 'n_tokens_mistral': 2981, 'n_tokens_neox': 2664, 'n_words': 495}