[{"data":1,"prerenderedAt":595},["ShallowReactive",2],{"i-mdi:magnify":3,"i-simple-icons:visualstudiocode":8,"i-mdi:github":11,"i-mdi:discord":13,"i-mdi:youtube":15,"i-mdi:flask-outline":17,"docs-\u002Fdocs\u002Fv2\u002Fcli\u002Fjob":19},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"currentColor\" d=\"M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5l-1.5 1.5l-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16A6.5 6.5 0 0 1 3 9.5A6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14S14 12 14 9.5S12 5 9.5 5\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9,"hidden":10},"\u003Cpath fill=\"currentColor\" d=\"M23.15 2.587L18.21.21a1.49 1.49 0 0 0-1.705.29l-9.46 8.63l-4.12-3.128a1 1 0 0 0-1.276.057L.327 7.261A1 1 0 0 0 .326 8.74L3.899 12L.326 15.26a1 1 0 0 0 .001 1.479L1.65 17.94a1 1 0 0 0 1.276.057l4.12-3.128l9.46 8.63a1.49 1.49 0 0 0 1.704.29l4.942-2.377A1.5 1.5 0 0 0 24 20.06V3.939a1.5 1.5 0 0 0-.85-1.352m-5.146 14.861L10.826 12l7.178-5.448z\"\u002F>",true,{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":12},"\u003Cpath fill=\"currentColor\" d=\"M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33s1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":14,"hidden":10},"\u003Cpath fill=\"currentColor\" d=\"m22 24l-5.25-5l.63 2H4.5A2.5 2.5 0 0 1 2 18.5v-15A2.5 2.5 0 0 1 4.5 1h15A2.5 2.5 0 0 1 22 3.5V24M12 6.8c-2.68 0-4.56 1.15-4.56 1.15c1.03-.92 2.83-1.45 2.83-1.45l-.17-.17c-1.69.03-3.22 1.2-3.22 1.2c-1.72 3.59-1.61 6.69-1.61 6.69c1.4 1.81 3.48 1.68 3.48 1.68l.71-.9c-1.25-.27-2.04-1.38-2.04-1.38S9.3 14.9 12 14.9s4.58-1.28 4.58-1.28s-.79 1.11-2.04 1.38l.71.9s2.08.13 3.48-1.68c0 0 .11-3.1-1.61-6.69c0 0-1.53-1.17-3.22-1.2l-.17.17s1.8.53 2.83 1.45c0 0-1.88-1.15-4.56-1.15m-2.07 3.79c.65 0 1.18.57 1.17 1.27c0 .69-.52 1.27-1.17 1.27c-.64 0-1.16-.58-1.16-1.27c0-.7.51-1.27 1.16-1.27m4.17 0c.65 0 1.17.57 1.17 1.27c0 .69-.52 1.27-1.17 1.27c-.64 0-1.16-.58-1.16-1.27c0-.7.51-1.27 1.16-1.27Z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":16},"\u003Cpath fill=\"currentColor\" d=\"m10 15l5.19-3L10 9zm11.56-7.83c.13.47.22 1.1.28 1.9c.07.8.1 1.49.1 2.09L22 12c0 2.19-.16 3.8-.44 4.83c-.25.9-.83 1.48-1.73 1.73c-.47.13-1.33.22-2.65.28c-1.3.07-2.49.1-3.59.1L12 19c-4.19 0-6.8-.16-7.83-.44c-.9-.25-1.48-.83-1.73-1.73c-.13-.47-.22-1.1-.28-1.9c-.07-.8-.1-1.49-.1-2.09L2 12c0-2.19.16-3.8.44-4.83c.25-.9.83-1.48 1.73-1.73c.47-.13 1.33-.22 2.65-.28c1.3-.07 2.49-.1 3.59-.1L12 5c4.19 0 6.8.16 7.83.44c.9.25 1.48.83 1.73 1.73\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":18},"\u003Cpath fill=\"currentColor\" d=\"M5 19a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1c0-.21-.07-.41-.18-.57L13 8.35V4h-2v4.35L5.18 18.43c-.11.16-.18.36-.18.57m1 3a3 3 0 0 1-3-3c0-.6.18-1.16.5-1.63L9 7.81V6a1 1 0 0 1-1-1V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1v1.81l5.5 9.56c.32.47.5 1.03.5 1.63a3 3 0 0 1-3 3zm7-6l1.34-1.34L16.27 18H7.73l2.66-4.61zm-.5-4a.5.5 0 0 1 .5.5a.5.5 0 0 1-.5.5a.5.5 0 0 1-.5-.5a.5.5 0 0 1 .5-.5\"\u002F>",{"id":20,"title":21,"body":22,"description":588,"extension":589,"meta":590,"navigation":10,"path":591,"seo":592,"stem":593,"__hash__":594},"docs\u002Fdocs\u002Fv2\u002Fcli\u002Fjob.md","axon job",{"type":23,"value":24,"toc":577},"minimark",[25,29,33,66,73,78,81,88,92,148,151,159,183,187,230,240,244,247,315,318,327,331,351,354,358,405,411,415,431,439,442,453,457,563,567,570,573],[26,27,21],"h1",{"id":28},"axon-job",[30,31,32],"p",{},"Hand a piece of work to an agent and get on with something else.",[34,35,40],"pre",{"className":36,"code":37,"language":38,"meta":39,"style":39},"language-bash shiki shiki-themes dark-plus","axon job create -p \"update the changelog for the last three commits\"\n","bash","",[41,42,43],"code",{"__ignoreMap":39},[44,45,48,52,56,59,63],"span",{"class":46,"line":47},"line",1,[44,49,51],{"class":50},"sCudf","axon",[44,53,55],{"class":54},"sKc5r"," job",[44,57,58],{"class":54}," create",[44,60,62],{"class":61},"scz_3"," -p",[44,64,65],{"class":54}," \"update the changelog for the last three commits\"\n",[30,67,68,69,72],{},"This is the other half of ",[41,70,71],{},"axon \u003Cagent>",". That command is a conversation — you are\npresent, watching it think. A job is delegation: you say what you want once, it happens\nwithout you, and you deal with the result whenever you come back.",[74,75,77],"h2",{"id":76},"a-job-is-not-an-agent-run","A job is not an agent run",[30,79,80],{},"An agent run is one attempt. A job is the thing you asked for, and it survives its\nattempts — retry it and the thread you have been reading stays intact.",[30,82,83,84,87],{},"That distinction is why jobs have their own commands rather than being flags on ",[41,85,86],{},"run",".",[74,89,91],{"id":90},"creating","Creating",[34,93,95],{"className":36,"code":94,"language":38,"meta":39,"style":39},"axon job create -p \"do the thing\"\naxon job create \"do the thing\"                    # the bare form works too\naxon job create -p \"do the thing\" -t \"Changelog\"  # with an explicit title\n",[41,96,97,110,126],{"__ignoreMap":39},[44,98,99,101,103,105,107],{"class":46,"line":47},[44,100,51],{"class":50},[44,102,55],{"class":54},[44,104,58],{"class":54},[44,106,62],{"class":61},[44,108,109],{"class":54}," \"do the thing\"\n",[44,111,113,115,117,119,122],{"class":46,"line":112},2,[44,114,51],{"class":50},[44,116,55],{"class":54},[44,118,58],{"class":54},[44,120,121],{"class":54}," \"do the thing\"",[44,123,125],{"class":124},"sOLPB","                    # the bare form works too\n",[44,127,129,131,133,135,137,139,142,145],{"class":46,"line":128},3,[44,130,51],{"class":50},[44,132,55],{"class":54},[44,134,58],{"class":54},[44,136,62],{"class":61},[44,138,121],{"class":54},[44,140,141],{"class":61}," -t",[44,143,144],{"class":54}," \"Changelog\"",[44,146,147],{"class":124},"  # with an explicit title\n",[30,149,150],{},"The title is optional on purpose. The flow this exists for is typing one instruction and\nthinking about nothing else, so a missing title is taken from the first line of the\ncontent.",[30,152,153,154,158],{},"Where the work happens is captured ",[155,156,157],"strong",{},"when you create the job",", from the directory you\nwere standing in. It is never resolved later — a job that worked out its own directory at\nrun time would act on whatever tree happened to be current, which is not the one you\nmeant.",[34,160,162],{"className":36,"code":161,"language":38,"meta":39,"style":39},"axon job create -p \"run the linter\" --cwd ~\u002Fcode\u002Fapi\n",[41,163,164],{"__ignoreMap":39},[44,165,166,168,170,172,174,177,180],{"class":46,"line":47},[44,167,51],{"class":50},[44,169,55],{"class":54},[44,171,58],{"class":54},[44,173,62],{"class":61},[44,175,176],{"class":54}," \"run the linter\"",[44,178,179],{"class":61}," --cwd",[44,181,182],{"class":54}," ~\u002Fcode\u002Fapi\n",[74,184,186],{"id":185},"listing-and-reading","Listing and reading",[34,188,190],{"className":36,"code":189,"language":38,"meta":39,"style":39},"axon job list           # what still wants something from you\naxon job list --all     # including everything already dealt with\naxon job show 9c533cee\n",[41,191,192,204,218],{"__ignoreMap":39},[44,193,194,196,198,201],{"class":46,"line":47},[44,195,51],{"class":50},[44,197,55],{"class":54},[44,199,200],{"class":54}," list",[44,202,203],{"class":124},"           # what still wants something from you\n",[44,205,206,208,210,212,215],{"class":46,"line":112},[44,207,51],{"class":50},[44,209,55],{"class":54},[44,211,200],{"class":54},[44,213,214],{"class":61}," --all",[44,216,217],{"class":124},"     # including everything already dealt with\n",[44,219,220,222,224,227],{"class":46,"line":128},[44,221,51],{"class":50},[44,223,55],{"class":54},[44,225,226],{"class":54}," show",[44,228,229],{"class":54}," 9c533cee\n",[30,231,232,233,236,237,87],{},"Jobs are addressed by a short ref — the first eight characters of the id, as shown by\n",[41,234,235],{},"list",". A longer prefix works too. An ambiguous one is refused rather than guessed at,\nbecause the verbs that take a ref include ",[41,238,239],{},"cancel",[74,241,243],{"id":242},"two-states-not-one","Two states, not one",[30,245,246],{},"Every job carries two independent answers:",[248,249,250,265],"table",{},[251,252,253],"thead",{},[254,255,256,259,262],"tr",{},[257,258],"th",{},[257,260,261],{},"Who sets it",[257,263,264],{},"Values",[266,267,268,302],"tbody",{},[254,269,270,275,278],{},[271,272,273],"td",{},[155,274,86],{},[271,276,277],{},"the agent",[271,279,280,283,284,283,287,283,290,283,293,283,296,283,299],{},[41,281,282],{},"queued"," ",[41,285,286],{},"claimed",[41,288,289],{},"running",[41,291,292],{},"blocked",[41,294,295],{},"finished",[41,297,298],{},"failed",[41,300,301],{},"cancelled",[254,303,304,309,312],{},[271,305,306],{},[155,307,308],{},"acknowledged",[271,310,311],{},"you",[271,313,314],{},"yes or no",[30,316,317],{},"They are separate deliberately. If they were one field, either the agent would clear your\nlist on your behalf, or you would have no way to clear it yourself.",[30,319,320,322,323,326],{},[41,321,292],{}," is the state that makes this useful: the agent has hit something only you can\nanswer, and that is what ",[41,324,325],{},"axon job list"," puts in front of you.",[74,328,330],{"id":329},"answering","Answering",[34,332,334],{"className":36,"code":333,"language":38,"meta":39,"style":39},"axon job say 9c533cee \"use the gb layout\"\n",[41,335,336],{"__ignoreMap":39},[44,337,338,340,342,345,348],{"class":46,"line":47},[44,339,51],{"class":50},[44,341,55],{"class":54},[44,343,344],{"class":54}," say",[44,346,347],{"class":54}," 9c533cee",[44,349,350],{"class":54}," \"use the gb layout\"\n",[30,352,353],{},"Replying to a blocked job is what unblocks it. On a running job it is simply another turn\nin the conversation.",[74,355,357],{"id":356},"finishing","Finishing",[34,359,361],{"className":36,"code":360,"language":38,"meta":39,"style":39},"axon job done 9c533cee      # you are satisfied with it\naxon job cancel 9c533cee    # stop it\naxon job retry 9c533cee     # run it again, same thread\n",[41,362,363,377,391],{"__ignoreMap":39},[44,364,365,367,369,372,374],{"class":46,"line":47},[44,366,51],{"class":50},[44,368,55],{"class":54},[44,370,371],{"class":54}," done",[44,373,347],{"class":54},[44,375,376],{"class":124},"      # you are satisfied with it\n",[44,378,379,381,383,386,388],{"class":46,"line":112},[44,380,51],{"class":50},[44,382,55],{"class":54},[44,384,385],{"class":54}," cancel",[44,387,347],{"class":54},[44,389,390],{"class":124},"    # stop it\n",[44,392,393,395,397,400,402],{"class":46,"line":128},[44,394,51],{"class":50},[44,396,55],{"class":54},[44,398,399],{"class":54}," retry",[44,401,347],{"class":54},[44,403,404],{"class":124},"     # run it again, same thread\n",[30,406,407,410],{},[41,408,409],{},"done"," is your acknowledgement, not the agent's report. An agent saying it has finished\nand you agreeing that it did what you wanted are different claims, and only the second one\nclears the job from your list.",[74,412,414],{"id":413},"agents-can-create-jobs-they-cannot-close-them","Agents can create jobs. They cannot close them.",[30,416,417,418,420,421,423,424,426,427,430],{},"An agent may run ",[41,419,21],{}," — delegating a piece of work to another agent is a real thing\nto want. But ",[41,422,409],{},", ",[41,425,239],{}," and ",[41,428,429],{},"retry"," belong to whoever asked for the work:",[34,432,437],{"className":433,"code":435,"language":436},[434],"language-text","acknowledge is a person's decision — an agent cannot acknowledge a job\n","text",[41,438,435],{"__ignoreMap":39},[30,440,441],{},"Without that rule the list would arrive pre-ticked by the thing that did the work, which\nis the same as having no list.",[30,443,444,445,452],{},"You are recognised as a person by being signed in — see ",[446,447,449],"a",{"href":448},"\u002Fdocs\u002Fv2\u002Fcli\u002Flogin",[41,450,451],{},"axon login",".\nAn agent is recognised by the session identity every agent process carries. A command run\nwith neither can still create jobs, and still cannot close them.",[74,454,456],{"id":455},"options","Options",[248,458,459,472],{},[251,460,461],{},[254,462,463,466,469],{},[257,464,465],{},"Flag",[257,467,468],{},"Default",[257,470,471],{},"Description",[266,473,474,490,506,519,532,549],{},[254,475,476,484,487],{},[271,477,478,423,481],{},[41,479,480],{},"-p",[41,482,483],{},"--prompt",[271,485,486],{},"—",[271,488,489],{},"The instruction. Also accepted as a bare argument",[254,491,492,500,503],{},[271,493,494,423,497],{},[41,495,496],{},"-t",[41,498,499],{},"--title",[271,501,502],{},"first line of the content",[271,504,505],{},"Short name shown in listings",[254,507,508,513,516],{},[271,509,510],{},[41,511,512],{},"--agent",[271,514,515],{},"your default agent",[271,517,518],{},"Which agent should answer",[254,520,521,526,529],{},[271,522,523],{},[41,524,525],{},"--cwd",[271,527,528],{},"the current directory",[271,530,531],{},"Where the work happens",[254,533,534,539,544],{},[271,535,536],{},[41,537,538],{},"--all",[271,540,541],{},[41,542,543],{},"false",[271,545,546,548],{},[41,547,235],{}," only — include acknowledged and finished jobs",[254,550,551,556,560],{},[271,552,553],{},[41,554,555],{},"--json",[271,557,558],{},[41,559,543],{},[271,561,562],{},"Print one line of JSON to stdout and nothing else",[74,564,566],{"id":565},"where-jobs-live","Where jobs live",[30,568,569],{},"The daemon owns them, so a job outlives the terminal that created it — closing the window\ndoes not take the work with it.",[30,571,572],{},"Jobs are stored as an append-only log of everything that happened, and their state is read\nback from that log rather than being kept as a field. It is what lets the record be shared\nacross machines later without two writers overwriting each other.",[574,575,576],"style",{},"html pre.shiki code .sCudf, html code.shiki .sCudf{--shiki-default:#DCDCAA}html pre.shiki code .sKc5r, html code.shiki .sKc5r{--shiki-default:#CE9178}html pre.shiki code .scz_3, html code.shiki .scz_3{--shiki-default:#569CD6}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sOLPB, html code.shiki .sOLPB{--shiki-default:#6A9955}",{"title":39,"searchDepth":112,"depth":112,"links":578},[579,580,581,582,583,584,585,586,587],{"id":76,"depth":112,"text":77},{"id":90,"depth":112,"text":91},{"id":185,"depth":112,"text":186},{"id":242,"depth":112,"text":243},{"id":329,"depth":112,"text":330},{"id":356,"depth":112,"text":357},{"id":413,"depth":112,"text":414},{"id":455,"depth":112,"text":456},{"id":565,"depth":112,"text":566},"axon job delegates work to an agent and keeps the record of what happened — create, list, answer, and acknowledge background jobs from the terminal.","md",{},"\u002Fdocs\u002Fv2\u002Fcli\u002Fjob",{"title":21,"description":588},"docs\u002Fv2\u002Fcli\u002Fjob","STD0Tc9dewQD4hR-lWNUa7Cm2NRSIlqGazwQ23n5Xp4",1788820346556]