@kidlat-dakila/flightplan 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/backend/main.js +826 -1336
- package/backend/plugin/skills/live/SKILL.md +79 -0
- package/backend/plugin/skills/review/SKILL.md +8 -5
- package/frontend/assets/_branchId-Caxyy__g.js +1 -0
- package/frontend/assets/{_branchId-438YLxpk.js → _branchId-IJ4VEzEl.js} +1 -1
- package/frontend/assets/{_id-yAHjl11v.js → _id-3L9ONe4W.js} +1 -1
- package/frontend/assets/_id-CvORsoNj.js +1 -0
- package/frontend/assets/{agents-CUULznCR.js → agents-DnjhKMUc.js} +1 -1
- package/frontend/assets/agents-bla75JmI.js +1 -0
- package/frontend/assets/{create-Byti8N1q.js → create-B82q7ZMu.js} +1 -1
- package/frontend/assets/create-C9yw-thL.js +1 -0
- package/frontend/assets/{create-t6MxPYs8.js → create-CEpA1s8S.js} +1 -1
- package/frontend/assets/{create-DHjp2cB6.js → create-D0h6PRxn.js} +1 -1
- package/frontend/assets/{download-kIOYm7yl.js → download-CwWMZwNG.js} +1 -1
- package/frontend/assets/forges-BH3uXIQL.js +1 -0
- package/frontend/assets/{forges-5NgJFexV.js → forges-uSh1-w20.js} +1 -1
- package/frontend/assets/{index-DVMDfdCW.js → index--nj01XKS.js} +1 -1
- package/frontend/assets/index-0VAWT0gs.js +1 -0
- package/frontend/assets/{index-Dq71dq4Z.js → index-B0zuYONu.js} +1 -1
- package/frontend/assets/{index-WOMODjD2.js → index-BQaZ5gZR.js} +1 -1
- package/frontend/assets/{index-BUtsWXGk.js → index-BZ6iL63Z.js} +1 -1
- package/frontend/assets/{index-CRQLJ5uq.js → index-Bar8NyIm.js} +1 -1
- package/frontend/assets/{index-EFsgiJx1.js → index-BlTfCkr5.js} +1 -1
- package/frontend/assets/{index-Dz-E4Hhc.js → index-BvuPClj3.js} +1 -1
- package/frontend/assets/index-C9xsdcXo.js +1 -0
- package/frontend/assets/{index-Cjx98rmL.js → index-CJDNq1TA.js} +1 -1
- package/frontend/assets/{index-N0J0txvy.js → index-CJslcuJ0.js} +1 -1
- package/frontend/assets/index-CTKqkqZN.css +1 -0
- package/frontend/assets/{index-CAt5Gv5u.js → index-CXyB0ld0.js} +1 -1
- package/frontend/assets/{index-BDhIIxnY.js → index-CcORd1N6.js} +1 -1
- package/frontend/assets/{index-EItMs0kz.js → index-CrAQ5_e4.js} +1 -1
- package/frontend/assets/{index-CmW92SdM.js → index-DG0FDX8u.js} +1 -1
- package/frontend/assets/index-DKnoo-kT.js +455 -0
- package/frontend/assets/{index-BrL94etp.js → index-DKzDkR6v.js} +1 -1
- package/frontend/assets/{index-9MPLrKh9.js → index-DfKNJbUM.js} +40 -40
- package/frontend/assets/{index-CBObEG9P.js → index-DlUHisPA.js} +1 -1
- package/frontend/assets/{index-DYy-kFEi.js → index-Dv5cF6qF.js} +1 -1
- package/frontend/assets/{index-Qxg2C8CP.js → index-JPWJ3IiN.js} +1 -1
- package/frontend/assets/{index-RYSZy-Ra.js → index-V1avMli5.js} +1 -1
- package/frontend/assets/{index-Dk3p64fP.js → index-iRAoFOv3.js} +1 -1
- package/frontend/assets/repositories-DqGU7W63.js +1 -0
- package/frontend/assets/{repositories-VWl6aq7K.js → repositories-DuObN8PJ.js} +1 -1
- package/frontend/assets/review-BbbMUFsk.js +1 -0
- package/frontend/assets/{review-CXzRf1jk.js → review-C3k0h5Vl.js} +1 -1
- package/frontend/assets/{route--z3gnt4z.js → route-D8s8AylJ.js} +1 -1
- package/frontend/index.html +2 -2
- package/package.json +1 -2
- package/published-review/app.css +1 -1
- package/published-review/app.js +94 -96
- package/frontend/assets/_branchId-PhBseeXo.js +0 -1
- package/frontend/assets/_id-z15a_Wqg.js +0 -1
- package/frontend/assets/agents-CF_BNYuU.js +0 -1
- package/frontend/assets/create-DiPNM_Jx.js +0 -1
- package/frontend/assets/forges-Dz31lZmK.js +0 -1
- package/frontend/assets/index-BDgPH-og.js +0 -1
- package/frontend/assets/index-C8_4U9zA.js +0 -457
- package/frontend/assets/index-CSy69oc4.js +0 -1
- package/frontend/assets/index-Cmg8rxUj.css +0 -1
- package/frontend/assets/repositories-BrbB16PW.js +0 -1
- package/frontend/assets/review-BMO-QDpl.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a8 as r}from"./index-C8_4U9zA.js";const e=r;export{e as errorComponent};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as r}from"./index-WOMODjD2.js";import"./index-C8_4U9zA.js";const n=r;export{n as errorComponent};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as r}from"./index-WOMODjD2.js";import"./index-C8_4U9zA.js";const n=r;export{n as errorComponent};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as r}from"./index-WOMODjD2.js";import"./index-C8_4U9zA.js";const n=r;export{n as errorComponent};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as r}from"./index-WOMODjD2.js";import"./index-C8_4U9zA.js";const n=r;export{n as errorComponent};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e,V as $,W as M,C as G,X as H,r,z as B,Y as W,B as Y,Z as U}from"./index-C8_4U9zA.js";import{I as z}from"./index-RYSZy-Ra.js";import{F as q}from"./index-Dz-E4Hhc.js";const V="How does Flight Plan interact with the agent?",X="What Flight Plan builds and what your agent writes",Z="Flight Plan builds the review artifact from the code. Your agent reads the same change and writes the explanations into it, through the Flight Plan plugin and its MCP server.",J="What Flight Plan does",K="Flight Plan draws the Trace Diagram and the Blast Diagram, and arranges the Code Walkthrough based on your preferences. You can read a review before your agent writes anything.",Q="What the agent does",ee="Your agent runs on your subscription",se="rounded-sm bg-muted px-1.5 py-0.5 font-mono text-[0.875em]",ae="Your agent explains why the change exists and how the code works, and points out potential issues as findings. It writes into the review Flight Plan built and cannot change its structure. While you read, you can ask it about the change and it can ask you questions back.",S=({heading:a,text:o})=>e.jsxs("section",{children:[e.jsx("h3",{className:"font-bold",children:a}),e.jsx("p",{className:"mt-1 text-muted-foreground",children:o})]}),te=()=>e.jsxs(z,{title:ee,children:["Flight Plan launches your agent as an interactive session in a terminal that runs in the background. It avoids headless commands such as"," ",e.jsx("code",{className:se,children:"claude -p"}),", which can be billed separately from your subscription."]}),ge=()=>e.jsxs($,{children:[e.jsxs(M,{className:"group -mx-2 flex w-[calc(100%+1rem)] cursor-pointer items-center gap-3 rounded-sm px-2 py-4 text-left transition-colors duration-180 ease-out outline-none hover:bg-muted focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:[e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:"block text-lg leading-7 font-bold",children:V}),e.jsx("span",{className:"block text-sm text-muted-foreground",children:X})]}),e.jsx(G,{"aria-hidden":"true",className:"size-5 shrink-0 text-muted-foreground transition-transform duration-180 ease-out group-data-panel-open:rotate-180"})]}),e.jsxs(H,{className:"grid max-w-[62ch] gap-5 pb-2",children:[e.jsx("p",{children:Z}),e.jsx(S,{heading:J,text:K}),e.jsx(S,{heading:Q,text:ae}),e.jsx(te,{})]})]}),ne=({label:a,options:o,value:t,className:g,onChange:u})=>{const m=r.useId();return e.jsxs("fieldset",{className:B("grid gap-1.5",g),children:[e.jsx("legend",{className:"float-left text-sm font-bold",children:a}),e.jsx("span",{className:"clear-left inline-flex w-fit overflow-hidden rounded-lg border border-input bg-card",children:o.map(l=>e.jsxs("label",{className:"flex h-[calc(2rem-2px)] cursor-pointer items-center border-l border-input px-3 text-sm transition-colors duration-[180ms] ease-out first:border-l-0 hover:bg-muted has-checked:bg-foreground has-checked:font-bold has-checked:text-background has-focus-visible:outline-2 has-focus-visible:-outline-offset-2 has-focus-visible:outline-ring",children:[e.jsx("input",{type:"radio",name:m,className:"sr-only",checked:t===l.value,onChange:()=>{u(l.value)}}),e.jsx("span",{className:"text-box-cap",children:l.label})]},l.value))})]})},D="size-4 shrink-0 accent-(--primary)",le="Open folders until you reach the one to install into, then use it.",T="model",O="effort",re=[T,O],oe=()=>{},ce=({option:a,model:o,effort:t,modelErrorMessage:g,effortErrorMessage:u,onModelChange:m,onEffortChange:l})=>{const c=a.modelOptions.find(n=>n.model===o);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-wrap items-start gap-x-6 gap-y-3 pt-3",children:[e.jsx(U,{label:`Model for ${a.label}`,options:a.modelOptions.map(n=>({value:n.model,label:n.label})),value:o,errorMessage:g,className:"w-60",onChange:n=>{const f=a.modelOptions.find(x=>x.model===n);f!==void 0&&m(f)}}),(c==null?void 0:c.hasEffortChoice)===!0?e.jsx(ne,{label:`Effort for ${a.label}`,options:c.effortOptions.map(n=>({value:n.effort,label:n.label})),value:t,onChange:l}):null]}),u===null?null:e.jsx("p",{role:"alert",className:"text-sm text-destructive",children:u})]})},de=({option:a,groupName:o,isPicked:t,isDefault:g,installPath:u,model:m,effort:l,pathErrorMessage:c,modelErrorMessage:n,effortErrorMessage:f,onPickedChange:x,onDefaultChange:E,onInstallPathChange:N,onModelChange:C,onEffortChange:I,onBrowse:A})=>{const p=r.useId(),b=r.useId(),v=r.useId(),w=c!==null,d=a.unavailableReason===null;return e.jsxs("li",{className:"border-b border-border py-3",children:[e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsxs("label",{className:B("flex min-w-0 flex-1 items-start gap-3",d?"cursor-pointer":""),children:[e.jsx("input",{type:"checkbox",checked:t,disabled:!d,className:`${D} mt-0.5`,onChange:j=>{x(j.target.checked)}}),e.jsxs("span",{className:"min-w-0",children:[e.jsx("span",{className:"font-bold",children:a.label}),a.unavailableReason===null?null:e.jsxs("span",{className:"block max-w-[62ch] text-sm text-destructive",children:[e.jsx("span",{className:"font-bold",children:"Unavailable."}),` ${a.unavailableReason}`]})]})]}),e.jsxs("label",{className:"flex cursor-pointer items-center gap-2 pt-0.5 text-sm has-disabled:cursor-default has-disabled:text-muted-foreground",children:[e.jsx("input",{type:"radio",name:o,checked:g,disabled:!t,className:D,onChange:E}),e.jsx("span",{"aria-hidden":"true",className:"text-box-cap",children:"Default"}),e.jsx("span",{className:"sr-only",children:`Default agent: ${a.label}`})]})]}),t?e.jsxs("div",{className:"mt-3 grid gap-1.5 pl-7",children:[e.jsx("label",{htmlFor:p,className:"text-sm font-bold",children:`Install folder for ${a.label}`}),e.jsx("p",{id:b,className:"text-sm text-muted-foreground",children:a.pathHint}),e.jsxs("div",{className:"flex max-w-xl items-center gap-2",children:[e.jsx(W,{id:p,value:u,autoComplete:"off",spellCheck:!1,"aria-invalid":w,"aria-describedby":w?`${b} ${v}`:b,className:"min-w-0 flex-1 font-mono",onChange:j=>{N(j.target.value)}}),e.jsx(Y,{type:"button",variant:"outline","aria-label":`Browse for the ${a.label} install folder`,onClick:A,children:"Browse"})]}),w?e.jsx("p",{id:v,role:"alert",className:"text-sm text-destructive",children:c}):null,e.jsx(ce,{option:a,model:m,effort:l,modelErrorMessage:n,effortErrorMessage:f,onModelChange:C,onEffortChange:I})]}):null]})},me=({agents:a,defaultAgent:o,problem:t,children:g,folderBrowser:u,folderBrowserErrorMessage:m,onBrowseFolder:l,onBrowseEnd:c,onSubmit:n})=>{const f=r.useId(),[x,E]=r.useState(()=>Object.fromEntries(a.map(s=>[s.agent,s.isPicked]))),[N,C]=r.useState(()=>Object.fromEntries(a.map(s=>[s.agent,s.installPath]))),[I,A]=r.useState(()=>Object.fromEntries(a.map(s=>[s.agent,s.model]))),[p,b]=r.useState(()=>Object.fromEntries(a.map(s=>[s.agent,s.effort]))),[v,w]=r.useState(o),[d,j]=r.useState(null),R=s=>{j(s),l(N[s.agent]??"")},k=()=>{j(null),c()},L=s=>{d!==null&&C(y=>({...y,[d.agent]:s})),k()},_=()=>{n({agents:a.map(s=>({agent:s.agent,isPicked:x[s.agent]??!1,installPath:N[s.agent]??"",model:I[s.agent]??s.model,effort:p[s.agent]??s.effort})),defaultAgent:v})};return e.jsxs("form",{onSubmit:s=>{s.preventDefault(),_()},children:[e.jsx("ul",{className:"border-t border-border",children:a.map(s=>{var y,P,F;return e.jsx(de,{option:s,groupName:f,isPicked:x[s.agent]??!1,isDefault:v===s.agent,installPath:N[s.agent]??"",model:I[s.agent]??s.model,effort:p[s.agent]??s.effort,pathErrorMessage:((y=t==null?void 0:t.field)==null?void 0:y.owner)===s.agent&&!re.includes(t.field.name)?t.message:null,modelErrorMessage:((P=t==null?void 0:t.field)==null?void 0:P.owner)===s.agent&&t.field.name===T?t.message:null,effortErrorMessage:((F=t==null?void 0:t.field)==null?void 0:F.owner)===s.agent&&t.field.name===O?t.message:null,onPickedChange:h=>{E(i=>({...i,[s.agent]:h}))},onDefaultChange:()=>{w(s.agent)},onInstallPathChange:h=>{C(i=>({...i,[s.agent]:h}))},onModelChange:h=>{A(i=>({...i,[s.agent]:h.model})),b(i=>({...i,[s.agent]:h.selectedEffort}))},onEffortChange:h=>{b(i=>({...i,[s.agent]:h}))},onBrowse:()=>{R(s)}},s.agent)})}),g,e.jsx(q,{isOpen:d!==null,title:`Install folder for ${(d==null?void 0:d.label)??""}`,description:le,browser:u,errorMessage:m,onOpenFolder:l,onChooseRepository:oe,onChooseFolder:L,onClose:k})]})};export{me as A,ge as a};
|