@flisk-sh/flisk 1.4.5 → 1.4.6

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.
Files changed (88) hide show
  1. package/README.md +37 -14
  2. package/cli/dist/commands/doctor.js +50 -12
  3. package/cli/dist/commands/down.js +33 -1
  4. package/cli/dist/commands/logs.js +38 -1
  5. package/cli/dist/commands/project.js +11 -0
  6. package/cli/dist/commands/status.js +39 -10
  7. package/cli/dist/commands/up.js +119 -1
  8. package/cli/dist/commands/upgrade.js +2 -2
  9. package/cli/dist/utils/bun-requirement.js +7 -4
  10. package/cli/dist/utils/cold-preflight.js +52 -32
  11. package/cli/dist/utils/doctor-native.js +96 -0
  12. package/cli/dist/utils/native-project.js +41 -0
  13. package/cli/dist/utils/native-runtime.js +513 -0
  14. package/cli/dist/utils/native-service.js +95 -0
  15. package/cli/dist/utils/native-up.js +156 -0
  16. package/cli/dist/utils/platform.js +1 -1
  17. package/cli/dist/utils/project-templates.js +1 -1
  18. package/cli/dist/utils/service-manifest.js +19 -3
  19. package/cli/dist/utils/services.js +15 -2
  20. package/cli/dist/utils/tilt-logs.js +8 -0
  21. package/cli/dist-bundle/{chunk-V36PT2HF.js → chunk-BIVAAWBX.js} +1 -1
  22. package/cli/dist-bundle/{chunk-U42XZWXB.js → chunk-C4UFBXRD.js} +1 -1
  23. package/cli/dist-bundle/{chunk-CGTWXWBU.js → chunk-CAEMWNPF.js} +1 -1
  24. package/cli/dist-bundle/chunk-CDKEHFW6.js +35 -0
  25. package/cli/dist-bundle/{chunk-LUUJ4JB7.js → chunk-DPQK5TIS.js} +1 -1
  26. package/cli/dist-bundle/chunk-ETXZ5LUG.js +18 -0
  27. package/cli/dist-bundle/chunk-GT76VMUL.js +130 -0
  28. package/cli/dist-bundle/{chunk-4J2FLFUA.js → chunk-IDNES5PE.js} +1 -1
  29. package/cli/dist-bundle/{chunk-SFOFTVYM.js → chunk-MUDE4DZD.js} +1 -1
  30. package/cli/dist-bundle/{chunk-BP2M4OJ4.js → chunk-QEBN6ZVQ.js} +1 -1
  31. package/cli/dist-bundle/{chunk-VMVTECCK.js → chunk-R7DWXISM.js} +1 -1
  32. package/cli/dist-bundle/{chunk-Z5QEE4SW.js → chunk-U5FCQF42.js} +1 -1
  33. package/cli/dist-bundle/{chunk-TIYTGN5R.js → chunk-WCGBVETR.js} +1 -1
  34. package/cli/dist-bundle/cli.js +357 -352
  35. package/cli/dist-bundle/cold-preflight-KUWOL2Q2.js +2 -0
  36. package/cli/dist-bundle/{demo-stage-G4W23BXW.js → demo-stage-QCC4IWXR.js} +1 -1
  37. package/cli/dist-bundle/{open-HQFT6WDC.js → open-AZNX4AC5.js} +1 -1
  38. package/cli/dist-bundle/project-5SWIGCNP.js +2 -0
  39. package/cli/dist-bundle/{project-templates-IMJ3OX5I.js → project-templates-2VQPUBSQ.js} +1 -1
  40. package/cli/dist-bundle/{services-GLFKZBBZ.js → services-EY5WKPHQ.js} +1 -1
  41. package/cli/dist-bundle/{tilt-port-owner-PJN4MPYE.js → tilt-port-owner-UBU6JWOA.js} +1 -1
  42. package/cli/package.json +1 -1
  43. package/examples/{tdk-example → flisk-example}/README.md +2 -2
  44. package/package.json +2 -2
  45. package/runtime/discovery/AGENTS.md +1 -1
  46. package/runtime/discovery/TILT_DISCOVERY.star +1 -1
  47. package/runtime/discovery/deterministic.star +1 -1
  48. package/runtime/engine/AGENTS.md +3 -3
  49. package/runtime/engine/README.md +1 -1
  50. package/runtime/engine/REFACTORING_MANIFEST_SYSTEM.md +1 -1
  51. package/runtime/engine/assets/docker/wake-gateway/decide.ts +1 -1
  52. package/runtime/engine/assets/docker/wake-gateway/server.ts +2 -2
  53. package/runtime/engine/assets/scripts/mac-m1-resource-monitor.sh +6 -6
  54. package/runtime/engine/schemas/service-schema.json +99 -21
  55. package/runtime/engine/scripts/debug-container.sh +1 -1
  56. package/runtime/engine/scripts/generate-manifest.sh +2 -2
  57. package/runtime/engine/topologies/platform/docker/compose/traefik_standalone.star +19 -4
  58. package/runtime/engine/topologies/platform/docker/constants.star +2 -2
  59. package/runtime/engine/topologies/platform/docker/networking/traefik_static_routes.star +2 -2
  60. package/runtime/engine/topologies/tilt/manifest/mapper.star +1 -1
  61. package/runtime/engine/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star +1 -1
  62. package/runtime/ext/ide-components/README.md +1 -1
  63. package/runtime/ext/ui-enhancements/extension.yaml +2 -2
  64. package/runtime/specs/specs/TILT_SERVICE_DEFAULTS.star +1 -1
  65. package/runtime/specs/specs/TILT_TECH_STACK.star +1 -1
  66. package/cli/dist-bundle/chunk-BMHPPX2Q.js +0 -35
  67. package/cli/dist-bundle/chunk-PEZQEZVV.js +0 -17
  68. package/cli/dist-bundle/chunk-ULMQVD7J.js +0 -122
  69. package/cli/dist-bundle/cold-preflight-3BNDOLGS.js +0 -2
  70. package/cli/dist-bundle/project-JZO2CPZZ.js +0 -2
  71. /package/examples/{tdk-example → flisk-example}/LICENSE +0 -0
  72. /package/examples/{tdk-example → flisk-example}/TILT_SERVICE_DEFAULTS.star +0 -0
  73. /package/examples/{tdk-example → flisk-example}/TILT_TECH_STACK.star +0 -0
  74. /package/examples/{tdk-example → flisk-example}/Tiltfile +0 -0
  75. /package/examples/{tdk-example → flisk-example}/services/platform/messaging/docker-compose.yml +0 -0
  76. /package/examples/{tdk-example → flisk-example}/services/shop/orders-api/package.json +0 -0
  77. /package/examples/{tdk-example → flisk-example}/services/shop/orders-api/service.json +0 -0
  78. /package/examples/{tdk-example → flisk-example}/services/shop/orders-api/src/index.ts +0 -0
  79. /package/examples/{tdk-example → flisk-example}/services/shop/orders-app/index.html +0 -0
  80. /package/examples/{tdk-example → flisk-example}/services/shop/orders-app/package.json +0 -0
  81. /package/examples/{tdk-example → flisk-example}/services/shop/orders-app/public/.gitkeep +0 -0
  82. /package/examples/{tdk-example → flisk-example}/services/shop/orders-app/service.json +0 -0
  83. /package/examples/{tdk-example → flisk-example}/services/shop/orders-app/src/main.tsx +0 -0
  84. /package/examples/{tdk-example → flisk-example}/services/shop/orders-app/src/orders.tsx +0 -0
  85. /package/examples/{tdk-example → flisk-example}/services/shop/orders-app/src/style.css +0 -0
  86. /package/examples/{tdk-example → flisk-example}/services/shop/orders-worker/package.json +0 -0
  87. /package/examples/{tdk-example → flisk-example}/services/shop/orders-worker/service.json +0 -0
  88. /package/examples/{tdk-example → flisk-example}/services/shop/orders-worker/src/index.ts +0 -0
@@ -0,0 +1,2 @@
1
+ import{createRequire as __fliskRequire}from'node:module';const require=__fliskRequire(import.meta.url);
2
+ import{L as a,M as b,N as c,O as d,P as e,Q as f,R as g,S as h,T as i,U as j,V as k,W as l}from"./chunk-GT76VMUL.js";import"./chunk-MUDE4DZD.js";import"./chunk-IDNES5PE.js";import"./chunk-GPUJ55MI.js";import"./chunk-3J6XI3NX.js";import"./chunk-BIVAAWBX.js";import"./chunk-WCGBVETR.js";import"./chunk-CAEMWNPF.js";import"./chunk-ETXZ5LUG.js";import"./chunk-C4UFBXRD.js";import"./chunk-KJZUBHLO.js";export{d as MACHINE_CHECK_IDS,a as NATIVE_CHECK_IDS,b as RUNTIME_CHECK_IDS,c as SCAFFOLD_CHECK_IDS,j as assertMachineReadyOrExit,k as detectRuntimePrerequisites,i as formatColdPreflight,l as formatRuntimeNextSteps,e as nodeTooOld,f as requireVerifiedDockerVersions,h as runColdPreflight,g as usesPrisma};
@@ -1,5 +1,5 @@
1
1
  import{createRequire as __fliskRequire}from'node:module';const require=__fliskRequire(import.meta.url);
2
- import{b as R}from"./chunk-LUUJ4JB7.js";import{b as c}from"./chunk-U42XZWXB.js";import"./chunk-KJZUBHLO.js";var v=12,_=24,F={plain:e=>e,bold:c.bold,dim:c.gray,ok:c.green,warn:c.yellow,err:c.red},S={pending:"\u25CB",active:"\u25D0",done:"\u2714",failed:"\u2716"},j={pending:"dim",active:"warn",done:"ok",failed:"err"};function o(e){return R(String(e)).replace(/[\n\r\t]/g," ")}function g(e){if(!Number.isFinite(e)||e<0)return"0.0s";if(e<1e4)return`${(e/1e3).toFixed(1)}s`;if(e<6e4)return`${Math.round(e/1e3)}s`;let n=Math.floor(e/6e4),i=Math.round(e%6e4/1e3);return`${n}m ${i}s`}function $(e){return e.reduce((n,i)=>n+i.text.length,0)}function k(e,n){if(n<=0)return[];let i=[],l=0;for(let s of e){if(l>=n)break;let t=n-l;if(s.text.length<=t){i.push(s),l+=s.text.length;continue}i.push({...s,text:`${s.text.slice(0,Math.max(0,t-1))}\u2026`}),l=n}return i}function w(e,n){let i=k(e,n),l=n-$(i);return l<=0?i:[...i,{text:" ".repeat(l),style:"plain"}]}function M(e,n,i){let l=$(n),s=i-l-1;if(s<4)return w(k([...e,...n],i),i);let t=k(e,s),r=i-$(t)-l;return[...t,{text:" ".repeat(Math.max(1,r)),style:"plain"},...n]}function b(e){return[{text:` ${"\u2500".repeat(Math.max(0,e-2))}`,style:"dim"}]}function P(e,n){return M([{text:" ",style:"plain"},{text:S[e.status],style:j[e.status]},{text:" ",style:"plain"},{text:o(e.label),style:e.status==="pending"?"dim":"plain"}],e.elapsedMs===void 0?[]:[{text:g(e.elapsedMs),style:"dim"}],n)}function Y(e){let n=Math.max(0,e.servicesTotal);if(n===0)return"no services found";let l=[`${Math.min(Math.max(0,e.servicesReady),n)} of ${n} services ready`];return e.servicesBuilding>0&&l.push(`${e.servicesBuilding} building`),l.join(" \xB7 ")}function E(e,n=80){let i=Number.isFinite(n)&&n>0?n:80,l=Math.max(_,Math.min(i-1,78)),s=[],t=a=>s.push(w(a,l)),r=()=>t([]);if(e.done){t(M([{text:" ",style:"plain"},{text:"\u2714",style:"ok"},{text:" Your stack is running",style:"ok"}],[{text:g(e.elapsedMs),style:"dim"}],l)),t([{text:" ",style:"plain"},{text:o(e.subtitle),style:"dim"}]),r();for(let a of e.done.urls.slice(0,2))t([{text:" ",style:"plain"},{text:o(a),style:"plain"}]);r(),t(b(l)),t([{text:" ",style:"plain"},{text:o(e.done.summary),style:"plain"}]),t([{text:" ",style:"plain"},{text:o(e.done.hint),style:"dim"}]),r(),t([{text:" ",style:"plain"},{text:`flisk ${o(e.done.version)}`,style:"dim"}])}else if(e.failure){let a=e.phases.find(p=>p.status==="failed");t(M([{text:" ",style:"plain"},{text:"\u2716",style:"err"},{text:" ",style:"plain"},{text:o(a?.label??"The demo stopped"),style:"err"}],[{text:g(e.elapsedMs),style:"dim"}],l)),r(),t([{text:" ",style:"plain"},{text:o(e.failure.message),style:"plain"}]),e.failure.fix&&t([{text:" ",style:"plain"},{text:o(e.failure.fix),style:"dim"}]),r(),t(b(l)),e.detail&&t([{text:" ",style:"plain"},{text:o(e.detail),style:"dim"}]),e.failure.logPath&&t([{text:" ",style:"plain"},{text:`log: ${o(e.failure.logPath)}`,style:"dim"}])}else{t([{text:" ",style:"plain"},{text:o(e.title),style:"bold"}]),t([{text:" ",style:"plain"},{text:o(e.subtitle),style:"dim"}]),r();let a=e.phases.slice(0,4);for(let p of a)t(P(p,l));for(let p=a.length;p<4;p+=1)r();r(),t(b(l)),t([{text:" ",style:"plain"},{text:o(e.detail??""),style:"dim"}]),t(M([{text:" ",style:"plain"},{text:Y(e),style:"plain"}],[{text:g(e.elapsedMs),style:"dim"}],l))}for(;s.length<v;)s.push(w([],l));return s.slice(0,v)}function A(e){return e.map(n=>n.map(i=>i.text).join(""))}function D(e){return e.map(n=>F[n.style](n.text)).join("")}function H(e,n=process.stderr,i=Date.now){let l=n.isTTY===!0,s=i(),t={...e},r=!1,a="",p="",f,T=()=>{let u=!!(t.done||t.failure);return{...t,elapsedMs:u?t.elapsedMs:i()-s}},x=()=>{let u=T(),m=E(u,n.columns??80),y=A(m);if(!l){let h=y.join(`
2
+ import{b as R}from"./chunk-DPQK5TIS.js";import{b as c}from"./chunk-C4UFBXRD.js";import"./chunk-KJZUBHLO.js";var v=12,_=24,F={plain:e=>e,bold:c.bold,dim:c.gray,ok:c.green,warn:c.yellow,err:c.red},S={pending:"\u25CB",active:"\u25D0",done:"\u2714",failed:"\u2716"},j={pending:"dim",active:"warn",done:"ok",failed:"err"};function o(e){return R(String(e)).replace(/[\n\r\t]/g," ")}function g(e){if(!Number.isFinite(e)||e<0)return"0.0s";if(e<1e4)return`${(e/1e3).toFixed(1)}s`;if(e<6e4)return`${Math.round(e/1e3)}s`;let n=Math.floor(e/6e4),i=Math.round(e%6e4/1e3);return`${n}m ${i}s`}function $(e){return e.reduce((n,i)=>n+i.text.length,0)}function k(e,n){if(n<=0)return[];let i=[],l=0;for(let s of e){if(l>=n)break;let t=n-l;if(s.text.length<=t){i.push(s),l+=s.text.length;continue}i.push({...s,text:`${s.text.slice(0,Math.max(0,t-1))}\u2026`}),l=n}return i}function w(e,n){let i=k(e,n),l=n-$(i);return l<=0?i:[...i,{text:" ".repeat(l),style:"plain"}]}function M(e,n,i){let l=$(n),s=i-l-1;if(s<4)return w(k([...e,...n],i),i);let t=k(e,s),r=i-$(t)-l;return[...t,{text:" ".repeat(Math.max(1,r)),style:"plain"},...n]}function b(e){return[{text:` ${"\u2500".repeat(Math.max(0,e-2))}`,style:"dim"}]}function P(e,n){return M([{text:" ",style:"plain"},{text:S[e.status],style:j[e.status]},{text:" ",style:"plain"},{text:o(e.label),style:e.status==="pending"?"dim":"plain"}],e.elapsedMs===void 0?[]:[{text:g(e.elapsedMs),style:"dim"}],n)}function Y(e){let n=Math.max(0,e.servicesTotal);if(n===0)return"no services found";let l=[`${Math.min(Math.max(0,e.servicesReady),n)} of ${n} services ready`];return e.servicesBuilding>0&&l.push(`${e.servicesBuilding} building`),l.join(" \xB7 ")}function E(e,n=80){let i=Number.isFinite(n)&&n>0?n:80,l=Math.max(_,Math.min(i-1,78)),s=[],t=a=>s.push(w(a,l)),r=()=>t([]);if(e.done){t(M([{text:" ",style:"plain"},{text:"\u2714",style:"ok"},{text:" Your stack is running",style:"ok"}],[{text:g(e.elapsedMs),style:"dim"}],l)),t([{text:" ",style:"plain"},{text:o(e.subtitle),style:"dim"}]),r();for(let a of e.done.urls.slice(0,2))t([{text:" ",style:"plain"},{text:o(a),style:"plain"}]);r(),t(b(l)),t([{text:" ",style:"plain"},{text:o(e.done.summary),style:"plain"}]),t([{text:" ",style:"plain"},{text:o(e.done.hint),style:"dim"}]),r(),t([{text:" ",style:"plain"},{text:`flisk ${o(e.done.version)}`,style:"dim"}])}else if(e.failure){let a=e.phases.find(p=>p.status==="failed");t(M([{text:" ",style:"plain"},{text:"\u2716",style:"err"},{text:" ",style:"plain"},{text:o(a?.label??"The demo stopped"),style:"err"}],[{text:g(e.elapsedMs),style:"dim"}],l)),r(),t([{text:" ",style:"plain"},{text:o(e.failure.message),style:"plain"}]),e.failure.fix&&t([{text:" ",style:"plain"},{text:o(e.failure.fix),style:"dim"}]),r(),t(b(l)),e.detail&&t([{text:" ",style:"plain"},{text:o(e.detail),style:"dim"}]),e.failure.logPath&&t([{text:" ",style:"plain"},{text:`log: ${o(e.failure.logPath)}`,style:"dim"}])}else{t([{text:" ",style:"plain"},{text:o(e.title),style:"bold"}]),t([{text:" ",style:"plain"},{text:o(e.subtitle),style:"dim"}]),r();let a=e.phases.slice(0,4);for(let p of a)t(P(p,l));for(let p=a.length;p<4;p+=1)r();r(),t(b(l)),t([{text:" ",style:"plain"},{text:o(e.detail??""),style:"dim"}]),t(M([{text:" ",style:"plain"},{text:Y(e),style:"plain"}],[{text:g(e.elapsedMs),style:"dim"}],l))}for(;s.length<v;)s.push(w([],l));return s.slice(0,v)}function A(e){return e.map(n=>n.map(i=>i.text).join(""))}function D(e){return e.map(n=>F[n.style](n.text)).join("")}function H(e,n=process.stderr,i=Date.now){let l=n.isTTY===!0,s=i(),t={...e},r=!1,a="",p="",f,T=()=>{let u=!!(t.done||t.failure);return{...t,elapsedMs:u?t.elapsedMs:i()-s}},x=()=>{let u=T(),m=E(u,n.columns??80),y=A(m);if(!l){let h=y.join(`
3
3
  `);if(h===p)return;p=h,n.write(`${y.filter(L=>L.trim()!=="").join(`
4
4
  `)}
5
5
  `);return}let d=y.join(`
@@ -1,2 +1,2 @@
1
1
  import{createRequire as __fliskRequire}from'node:module';const require=__fliskRequire(import.meta.url);
2
- import{d as a,e as b,f as c,g as d,h as e,i as f}from"./chunk-Z5QEE4SW.js";import"./chunk-MINZ25AC.js";import"./chunk-V36PT2HF.js";import"./chunk-TIYTGN5R.js";import"./chunk-CGTWXWBU.js";import"./chunk-PEZQEZVV.js";import"./chunk-U42XZWXB.js";import"./chunk-KJZUBHLO.js";export{d as findReadyFrontend,b as isFrontendReady,a as listFrontendTargets,f as openCommand,e as openFirstFrontend,c as pickReadyFrontend};
2
+ import{d as a,e as b,f as c,g as d,h as e,i as f}from"./chunk-U5FCQF42.js";import"./chunk-MINZ25AC.js";import"./chunk-BIVAAWBX.js";import"./chunk-WCGBVETR.js";import"./chunk-CAEMWNPF.js";import"./chunk-ETXZ5LUG.js";import"./chunk-C4UFBXRD.js";import"./chunk-KJZUBHLO.js";export{d as findReadyFrontend,b as isFrontendReady,a as listFrontendTargets,f as openCommand,e as openFirstFrontend,c as pickReadyFrontend};
@@ -0,0 +1,2 @@
1
+ import{createRequire as __fliskRequire}from'node:module';const require=__fliskRequire(import.meta.url);
2
+ import{g as a,h as b,i as c,j as d,k as e}from"./chunk-CDKEHFW6.js";import"./chunk-QEBN6ZVQ.js";import"./chunk-MUDE4DZD.js";import"./chunk-GPUJ55MI.js";import"./chunk-CAEMWNPF.js";import"./chunk-ETXZ5LUG.js";import"./chunk-C4UFBXRD.js";import"./chunk-KJZUBHLO.js";export{c as cloneProjectTemplate,a as enableDiscoveredStacks,e as projectCommand,b as templateTargetDir,d as writeDefaultProjectConfig};
@@ -1,2 +1,2 @@
1
1
  import{createRequire as __fliskRequire}from'node:module';const require=__fliskRequire(import.meta.url);
2
- import{a,b}from"./chunk-BP2M4OJ4.js";import"./chunk-KJZUBHLO.js";export{a as PROJECT_TEMPLATES,b as bareTemplateArg};
2
+ import{a,b}from"./chunk-QEBN6ZVQ.js";import"./chunk-KJZUBHLO.js";export{a as PROJECT_TEMPLATES,b as bareTemplateArg};
@@ -1,2 +1,2 @@
1
1
  import{createRequire as __fliskRequire}from'node:module';const require=__fliskRequire(import.meta.url);
2
- import{da as a,ea as b,fa as c,ga as d,ha as e,ia as f,ja as g,ka as h,la as i,ma as j,na as k,oa as l,pa as m,qa as n,ra as o}from"./chunk-PEZQEZVV.js";import"./chunk-U42XZWXB.js";import"./chunk-KJZUBHLO.js";export{m as clearMetadataCache,f as discoverResources,e as discoverResourcesFromRoot,g as discoverResourcesStrict,c as discoverResourcesWithProblems,a as discoverServiceManifestPaths,h as discoverStackNames,j as discoverStacks,i as getAllStacks,n as getResourceMetadata,k as getResourcesForStack,o as getStackMetadata,b as resetPrintedServiceWarnings,l as stackExists,d as warnAboutSkippedFiles};
2
+ import{ia as a,ja as b,ka as c,la as d,ma as e,na as f,oa as g,pa as h,qa as i,ra as j,sa as k,ta as l,ua as m,va as n,wa as o}from"./chunk-ETXZ5LUG.js";import"./chunk-C4UFBXRD.js";import"./chunk-KJZUBHLO.js";export{m as clearMetadataCache,f as discoverResources,e as discoverResourcesFromRoot,g as discoverResourcesStrict,c as discoverResourcesWithProblems,a as discoverServiceManifestPaths,h as discoverStackNames,j as discoverStacks,i as getAllStacks,n as getResourceMetadata,k as getResourcesForStack,o as getStackMetadata,b as resetPrintedServiceWarnings,l as stackExists,d as warnAboutSkippedFiles};
@@ -1,2 +1,2 @@
1
1
  import{createRequire as __fliskRequire}from'node:module';const require=__fliskRequire(import.meta.url);
2
- import{a,b,c}from"./chunk-VMVTECCK.js";import"./chunk-4J2FLFUA.js";import"./chunk-TIYTGN5R.js";import"./chunk-CGTWXWBU.js";import"./chunk-PEZQEZVV.js";import"./chunk-U42XZWXB.js";import"./chunk-KJZUBHLO.js";export{c as classifyTiltPorts,a as findTiltPortOwner,b as isForeignTilt};
2
+ import{a,b,c}from"./chunk-R7DWXISM.js";import"./chunk-IDNES5PE.js";import"./chunk-WCGBVETR.js";import"./chunk-CAEMWNPF.js";import"./chunk-ETXZ5LUG.js";import"./chunk-C4UFBXRD.js";import"./chunk-KJZUBHLO.js";export{c as classifyTiltPorts,a as findTiltPortOwner,b as isForeignTilt};
package/cli/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "flisk-cli-internal",
3
3
  "private": true,
4
- "version": "1.4.5",
4
+ "version": "1.4.6",
5
5
  "description": "Flisk CLI — start services on your machine.",
6
6
  "keywords": [
7
7
  "flisk",
@@ -10,10 +10,10 @@ flisk project --yes
10
10
  flisk up
11
11
  ```
12
12
 
13
- Open `http://app.tdk-example.localhost/orders-app/` and create an order, or use the routed API:
13
+ Open `http://app.flisk-example.localhost/orders-app/` and create an order, or use the routed API:
14
14
 
15
15
  ```sh
16
- curl -fsS -X POST http://api.tdk-example.localhost/api/orders \
16
+ curl -fsS -X POST http://api.flisk-example.localhost/api/orders \
17
17
  -H 'content-type: application/json' -d '{"item":"coffee"}'
18
18
  ```
19
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flisk-sh/flisk",
3
- "version": "1.4.5",
3
+ "version": "1.4.6",
4
4
  "description": "Flisk CLI — start services on your machine.",
5
5
  "homepage": "https://flisk.sh",
6
6
  "repository": {
@@ -29,7 +29,7 @@
29
29
  "!runtime/**/*.spec.*",
30
30
  "!runtime/**/test_*.py",
31
31
  "!runtime/**/*_test.py",
32
- "examples/tdk-example",
32
+ "examples/flisk-example",
33
33
  "cli/bin",
34
34
  "cli/dist/**/*.js",
35
35
  "cli/dist-bundle/**/*.js",
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Purpose
4
4
 
5
- This folder contains the **service discovery system** for Flisk Landscape's Tilt infrastructure. It scans the repository for service manifests and creates Tilt resources.
5
+ This folder contains the **service discovery system** for Flisk's Tilt infrastructure. It scans the repository for service manifests and creates Tilt resources.
6
6
 
7
7
  ## Architecture: Two-Layer Scanning with Validation
8
8
 
@@ -8,7 +8,7 @@
8
8
  # ⚠️ DEVELOPER NOTICE: This is a SYSTEM CONFIG file.
9
9
  # For human-friendly docs, see: TILT_CONFIG.md
10
10
  #
11
- # This file defines service discovery settings for the Flisk Landscape platform.
11
+ # This file defines service discovery settings for the Flisk platform.
12
12
  # Discovery automatically finds and registers services from the filesystem.
13
13
  #
14
14
  # 📖 TO EDIT DISCOVERY SETTINGS:
@@ -1,6 +1,6 @@
1
1
  # Copyright (c) 2026 Flisk Landscape contributors
2
2
  # SPDX-License-Identifier: MIT
3
- # Deterministic Tilt Configuration for Flisk Landscape
3
+ # Deterministic Tilt Configuration for Flisk
4
4
  # Inspired by Mira Murati's "Defeating Nondeterminism" philosophy
5
5
  # Goal: Same filesystem state + same environment = identical Tilt output
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  disable: false
3
- description: Topology specialist for Flisk Landscape - expert in Tilt/Starlark, manifest-driven architecture, service discovery, and the complete local development orchestration system. Masters the infrastructure topology that enables 120+ services.
3
+ description: Topology specialist for Flisk - expert in Tilt/Starlark, manifest-driven architecture, service discovery, and the complete local development orchestration system. Masters the infrastructure topology that enables 120+ services.
4
4
  mode: subagent
5
5
  tools:
6
6
  - write
@@ -13,7 +13,7 @@ created: 2026-03-31
13
13
  updated: 2026-04-04
14
14
  ---
15
15
 
16
- You are a senior topology engineer specialized in the Flisk Landscape Tilt infrastructure. You are the definitive expert on the manifest-driven architecture, Starlark topology modules, service discovery, and the complete local development orchestration system.
16
+ You are a senior topology engineer specialized in the Flisk Tilt infrastructure. You are the definitive expert on the manifest-driven architecture, Starlark topology modules, service discovery, and the complete local development orchestration system.
17
17
 
18
18
  ## Core Identity: The Infrastructure Cartographer
19
19
 
@@ -539,7 +539,7 @@ load('./my_custom_extension.star', 'my_function')
539
539
  # Load from parent directory
540
540
  load('../common/utils.star', 'helper')
541
541
 
542
- # Load from topologies (Flisk Landscape pattern)
542
+ # Load from topologies (Flisk pattern)
543
543
  load('../../../platform/docker/index.star', 'Docker')
544
544
  ```
545
545
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  **Tilt Platform Framework Code**
6
6
 
7
- This directory contains the Flisk Landscape Tilt infrastructure framework - the code that powers our local development orchestration.
7
+ This directory contains the Flisk Tilt infrastructure framework - the code that powers our local development orchestration.
8
8
 
9
9
  ## What's Here
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Executive Summary
4
4
 
5
- This document outlines a comprehensive refactoring of the manifest parsing and validation system in the Flisk Landscape Tilt infrastructure. The goal is to move from scattered inline logic to a clean, modular, well-tested architecture.
5
+ This document outlines a comprehensive refactoring of the manifest parsing and validation system in the Flisk Tilt infrastructure. The goal is to move from scattered inline logic to a clean, modular, well-tested architecture.
6
6
 
7
7
  **Current State:**
8
8
  - Manifest parsing scattered across `discovery.star`, `registry.star`, and multiple generator files
@@ -38,7 +38,7 @@ export interface WakeAction {
38
38
  * only queues the resource: with Tilt's build slots busy (e.g. 100+
39
39
  * resources rebuilding after a re-vendor), a triggered resource waited
40
40
  * behind them and the request timed out (observed live against
41
- * tdk-erp-system, see tasks.md 7.2). server.ts falls back to `tilt trigger`
41
+ * flisk-erp-system, see tasks.md 7.2). server.ts falls back to `tilt trigger`
42
42
  * when no image exists yet to start from.
43
43
  */
44
44
  useComposeStart: boolean;
@@ -19,12 +19,12 @@
19
19
  * the resource name; Compose derives it as
20
20
  * <project>-<service>-<replica>, confirmed empirically
21
21
  * against a live Flisk container, e.g.
22
- * "tdk-erp-system-analytics-autogenerated-data-governance-api-1"
22
+ * "flisk-erp-system-analytics-autogenerated-data-governance-api-1"
23
23
  * for the "data-governance-api" resource).
24
24
  * X-Wake-Deps Comma-separated "resourceName=containerName" pairs
25
25
  * for required dependencies (task 1.5: Tilt never
26
26
  * cascades a trigger to these on its own).
27
- * X-Wake-Compose-Project The resource's Compose project (e.g. "tdk-erp-system-analytics-autogenerated").
27
+ * X-Wake-Compose-Project The resource's Compose project (e.g. "flisk-erp-system-analytics-autogenerated").
28
28
  * X-Wake-Compose-Files Comma-separated absolute compose file paths, the
29
29
  * same ones Tilt's `<resource>-run-only` resource
30
30
  * passes. The project root is mounted into this
@@ -2,7 +2,7 @@
2
2
  # Copyright (c) 2026 Flisk Landscape contributors
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # Flisk Landscape Mac M1 Resource Monitor
5
+ # Flisk Mac M1 Resource Monitor
6
6
  # Monitors Docker container resource usage and provides optimization recommendations
7
7
 
8
8
  set -e
@@ -14,7 +14,7 @@ YELLOW='\033[1;33m'
14
14
  BLUE='\033[0;34m'
15
15
  NC='\033[0m' # No Color
16
16
 
17
- echo -e "${BLUE}🍎 Flisk Landscape Mac M1 Resource Monitor${NC}"
17
+ echo -e "${BLUE}🍎 Flisk Mac M1 Resource Monitor${NC}"
18
18
  echo "=================================================="
19
19
 
20
20
  # Check if Docker is running
@@ -33,19 +33,19 @@ echo -e "${BLUE}💻 System Memory:${NC} $SYSTEM_MEMORY"
33
33
 
34
34
  echo ""
35
35
 
36
- # Check running Flisk Landscape containers
36
+ # Check running Flisk containers
37
37
  PROJECT_CONTAINERS=$(docker ps --format "{{.Names}}" | grep -E "(postgres|redis|nats|kafka|traefik|clickhouse|elasticsearch|verdaccio|infisical)" | sort)
38
38
 
39
39
  if [ -z "$PROJECT_CONTAINERS" ]; then
40
- echo -e "${YELLOW}⚠️ No Flisk Landscape containers are currently running${NC}"
40
+ echo -e "${YELLOW}⚠️ No Flisk containers are currently running${NC}"
41
41
  echo "Run 'tilt up' to start services"
42
42
  exit 0
43
43
  fi
44
44
 
45
- echo -e "${GREEN}📊 Running Flisk Landscape Containers:${NC}"
45
+ echo -e "${GREEN}📊 Running Flisk Containers:${NC}"
46
46
  echo "=================================================="
47
47
 
48
- # Get detailed stats for Flisk Landscape containers
48
+ # Get detailed stats for Flisk containers
49
49
  TOTAL_MEMORY_MB=0
50
50
  HIGH_CPU_COUNT=0
51
51
  HIGH_MEMORY_COUNT=0
@@ -12,7 +12,12 @@
12
12
  },
13
13
  "required": [
14
14
  "appType"
15
- ]
15
+ ],
16
+ "not": {
17
+ "required": [
18
+ "command"
19
+ ]
20
+ }
16
21
  },
17
22
  "then": {
18
23
  "properties": {
@@ -35,7 +40,12 @@
35
40
  },
36
41
  "required": [
37
42
  "appType"
38
- ]
43
+ ],
44
+ "not": {
45
+ "required": [
46
+ "command"
47
+ ]
48
+ }
39
49
  },
40
50
  "then": {
41
51
  "properties": {
@@ -55,7 +65,12 @@
55
65
  },
56
66
  "required": [
57
67
  "appType"
58
- ]
68
+ ],
69
+ "not": {
70
+ "required": [
71
+ "command"
72
+ ]
73
+ }
59
74
  },
60
75
  "then": {
61
76
  "properties": {
@@ -79,7 +94,12 @@
79
94
  },
80
95
  "required": [
81
96
  "appType"
82
- ]
97
+ ],
98
+ "not": {
99
+ "required": [
100
+ "command"
101
+ ]
102
+ }
83
103
  },
84
104
  "then": {
85
105
  "properties": {
@@ -92,9 +112,62 @@
92
112
  "port"
93
113
  ]
94
114
  }
115
+ },
116
+ {
117
+ "if": {
118
+ "required": [
119
+ "command"
120
+ ]
121
+ },
122
+ "then": {
123
+ "anyOf": [
124
+ {
125
+ "required": [
126
+ "appName"
127
+ ]
128
+ },
129
+ {
130
+ "required": [
131
+ "name"
132
+ ]
133
+ }
134
+ ],
135
+ "not": {
136
+ "anyOf": [
137
+ {
138
+ "required": [
139
+ "image"
140
+ ]
141
+ },
142
+ {
143
+ "required": [
144
+ "dockerfile"
145
+ ]
146
+ }
147
+ ]
148
+ }
149
+ },
150
+ "else": {
151
+ "required": [
152
+ "appName",
153
+ "stack"
154
+ ],
155
+ "anyOf": [
156
+ {
157
+ "required": [
158
+ "appType"
159
+ ]
160
+ },
161
+ {
162
+ "required": [
163
+ "type"
164
+ ]
165
+ }
166
+ ]
167
+ }
95
168
  }
96
169
  ],
97
- "description": "Configuration for Flisk resources. Drives Tilt orchestration, Docker Compose generation, and dependency resolution. Supports both explicit service.json files and synthesis from directory structure.",
170
+ "description": "Configuration for Flisk resources. Drives Tilt orchestration, Docker Compose generation, and dependency resolution. Supports both explicit service.json files and synthesis from directory structure. A service runs from exactly one source: a container (image, dockerfile, or a generated Dockerfile) or a local command.",
98
171
  "properties": {
99
172
  "$schema": {
100
173
  "description": "JSON Schema reference for IDE validation",
@@ -144,7 +217,7 @@
144
217
  },
145
218
  "databaseName": {
146
219
  "description": "Override auto-generated DB name.\nDefault: FLISK_{stack}",
147
- "pattern": "^Flisk_[a-z_]+$",
220
+ "pattern": "^FLISK_[a-z_]+$",
148
221
  "type": "string"
149
222
  },
150
223
  "dependencies": {
@@ -513,25 +586,30 @@
513
586
  "default": "files"
514
587
  }
515
588
  }
589
+ },
590
+ "command": {
591
+ "description": "Run the service as a local process with this shell command instead of a container, for example \"node server.js\" or \"uvicorn main:app --port $PORT\". It runs from the service directory with PORT set to port. No image, Dockerfile or generated files: flisk up starts, supervises and restarts it without Docker or Tilt. Cannot be combined with image or dockerfile.",
592
+ "minLength": 1,
593
+ "type": "string"
594
+ },
595
+ "env": {
596
+ "additionalProperties": {
597
+ "type": "string"
598
+ },
599
+ "description": "Environment variables for a command service. Values may reference ${VAR} (or ${VAR:-default}) from the project .env or the shell.",
600
+ "propertyNames": {
601
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
602
+ },
603
+ "type": "object"
604
+ },
605
+ "name": {
606
+ "description": "Service name. Same as appName; a command service may use either.",
607
+ "type": "string"
516
608
  }
517
609
  },
518
610
  "required": [
519
- "appName",
520
- "stack",
521
611
  "schemaVersion"
522
612
  ],
523
613
  "title": "Flisk Resource Configuration",
524
- "type": "object",
525
- "anyOf": [
526
- {
527
- "required": [
528
- "appType"
529
- ]
530
- },
531
- {
532
- "required": [
533
- "type"
534
- ]
535
- }
536
- ]
614
+ "type": "object"
537
615
  }
@@ -157,7 +157,7 @@ diagnostics_menu() {
157
157
  case $choice in
158
158
  1)
159
159
  echo -e "${BLUE}Testing network connectivity...${NC}"
160
- run_command "$resource_name" "nc -zv registry.npmjs.org 443 && nc -zv Flisk Landscape-verdaccio 4873"
160
+ run_command "$resource_name" "nc -zv registry.npmjs.org 443 && nc -zv flisk-verdaccio 4873"
161
161
  ;;
162
162
  2)
163
163
  echo -e "${BLUE}Viewing configuration files...${NC}"
@@ -2,7 +2,7 @@
2
2
  # Copyright (c) 2026 Flisk Landscape contributors
3
3
  # SPDX-License-Identifier: MIT
4
4
  # =============================================================================
5
- # 🎯 Flisk Landscape - RESOURCE MANIFEST GENERATOR
5
+ # 🎯 Flisk - RESOURCE MANIFEST GENERATOR
6
6
  # =============================================================================
7
7
  # Usage: ./generate-manifest.sh <stack> <resource-name> <type> [port]
8
8
  #
@@ -37,7 +37,7 @@ PROJECT_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
37
37
  print_usage() {
38
38
  cat << EOF
39
39
  ${BLUE}╔═══════════════════════════════════════════════════════════════════╗
40
- ║ 🎯 Flisk Landscape RESOURCE MANIFEST GENERATOR ║
40
+ ║ 🎯 Flisk RESOURCE MANIFEST GENERATOR ║
41
41
  ╚═══════════════════════════════════════════════════════════════════╝${NC}
42
42
 
43
43
  ${YELLOW}Usage:${NC}
@@ -19,11 +19,26 @@ def generate_standalone_traefik_compose(sablier_enabled = False, http_host_port
19
19
  emitted when sablier_enabled is True (a license grants "sablier"). Without
20
20
  it they would run for nothing: a container holding a read-write Docker
21
21
  socket, an image build, and a plugin download from GitHub on every start.
22
+
23
+ Pass None for https_host_port to emit an HTTP-only Traefik configuration.
22
24
  """
23
25
  network = PlatformDockerConstants.NETWORK_TRAEFIK_PUBLIC
24
26
  name = PlatformDockerConstants.PROJECT_NAME
25
27
  log_level = "DEBUG" if sablier_enabled else "INFO"
26
28
  plugins_volume = " - plugins-storage:/plugins-storage\n" if sablier_enabled else ""
29
+ https_entrypoint = (
30
+ ' - "--entrypoints.websecure.address=:443"\n'
31
+ if https_host_port != None
32
+ else ""
33
+ )
34
+ https_port = (
35
+ ' - "{bind_address}:{https_host_port}:443"\n'.format(
36
+ bind_address=bind_address,
37
+ https_host_port=https_host_port,
38
+ )
39
+ if https_host_port != None
40
+ else ""
41
+ )
27
42
  return """###############################################################################
28
43
  # SYSTEM-GENERATED - DO NOT EDIT
29
44
  # Standalone Traefik for Flisk projects without platform/introvertic proxy files.
@@ -48,12 +63,10 @@ services:
48
63
  - "--providers.file.directory=/etc/traefik/dynamic"
49
64
  - "--providers.file.watch=true"
50
65
  - "--entrypoints.web.address=:80"
51
- - "--entrypoints.websecure.address=:443"
52
- - "--log.level={log_level}"
66
+ {https_entrypoint} - "--log.level={log_level}"
53
67
  {sablier_flags} ports:
54
68
  - "{bind_address}:{http_host_port}:80"
55
- - "{bind_address}:{https_host_port}:443"
56
- volumes:
69
+ {https_port} volumes:
57
70
  - /var/run/docker.sock:/var/run/docker.sock:ro
58
71
  - ./{dynamic_dir_name}:/etc/traefik/dynamic:ro
59
72
  {plugins_volume} networks:
@@ -75,6 +88,8 @@ volumes:
75
88
  bind_address=bind_address,
76
89
  healthcheck_timing=compose_healthcheck_timing(10),
77
90
  traefik_depends_on=_SABLIER_DEPENDS_ON if sablier_enabled else "",
91
+ https_entrypoint=https_entrypoint,
92
+ https_port=https_port,
78
93
  sablier_flags=_SABLIER_FLAGS if sablier_enabled else "",
79
94
  sablier_services=_SABLIER_SERVICES.format(
80
95
  name=name,
@@ -97,7 +97,7 @@ VERDACCIO_TRAEFIK_HOST = "verdaccio.localhost"
97
97
  # image. Without it, the second `flisk up` runs `--remove-orphans` against the
98
98
  # first project's containers and overwrites its images.
99
99
  def compose_project_name(stack):
100
- """Compose project for a stack: <project>-<stack>-autogenerated (e.g. tdk-erp-system-analytics-autogenerated)."""
100
+ """Compose project for a stack: <project>-<stack>-autogenerated (e.g. flisk-erp-system-analytics-autogenerated)."""
101
101
  return PROJECT_NAME_HYPHEN + "-" + stack + "-autogenerated"
102
102
 
103
103
  def app_image_name(stack, res_name):
@@ -105,7 +105,7 @@ def app_image_name(stack, res_name):
105
105
  return PROJECT_NAME + "_" + stack + "_" + res_name + ":dev"
106
106
 
107
107
  def infra_compose_project_name(infra):
108
- """Compose project for a shared platform stack: <project>-<infra> (e.g. tdk-erp-system-database-management)."""
108
+ """Compose project for a shared platform stack: <project>-<infra> (e.g. flisk-erp-system-database-management)."""
109
109
  return PROJECT_NAME_HYPHEN + "-" + infra
110
110
 
111
111
  def migrator_image_name(stack):
@@ -17,7 +17,7 @@
17
17
  # Config for a request travels to the gateway via headers (X-Wake-*), not
18
18
  # the path/query. The route still strips the same `apiPath` prefix the real
19
19
  # Docker-label `-project` router strips (get_backend_traefik_labels) before
20
- # forwarding -- confirmed live against tdk-erp-system (task 7.2) that a
20
+ # forwarding -- confirmed live against flisk-erp-system (task 7.2) that a
21
21
  # backend's app only serves its bare health path (e.g. `/health`), not the
22
22
  # full `/api/{name}/health` the public route is matched on; without this, the
23
23
  # gateway's own proxy-through would forward the unstripped path once healthy
@@ -61,7 +61,7 @@ def _container_name(compose_project_name, res_name):
61
61
  Confirmed empirically against a live Flisk container (analytics-autogenerated
62
62
  -data-governance-api-1) -- see design.md D2 Context. Compose projects are now
63
63
  <project>-<stack>-autogenerated, so the name starts with the Flisk project too
64
- (tdk-erp-system-analytics-autogenerated-data-governance-api-1). Always replica 1: a
64
+ (flisk-erp-system-analytics-autogenerated-data-governance-api-1). Always replica 1: a
65
65
  deferred resource's replica count is unrelated to which single instance
66
66
  the wake gateway needs to address."""
67
67
  return compose_project_name + "-" + res_name + "-1"
@@ -190,7 +190,7 @@ def map_manifest(manifest, target_format='internal'):
190
190
  def _to_yaml_format(internal_manifest):
191
191
  """Convert internal format to YAML hierarchical format."""
192
192
  return {
193
- 'apiVersion': 'tilt.Flisk Landscape.io/v1',
193
+ 'apiVersion': 'tilt.flisk.io/v1',
194
194
  'kind': 'ResourceManifest',
195
195
  'metadata': {
196
196
  'name': internal_manifest.get('appName', ''),
@@ -429,7 +429,7 @@ def _register_deferred_image_prebuild(config, auto_init_apps):
429
429
  """Build a deferStart resource's image during `flisk up` without creating its container.
430
430
 
431
431
  `auto_init=False` on the dc_resource skips its docker_build too (confirmed
432
- live on tdk-erp-system, task 7.2), so a fresh project's first request would
432
+ live on flisk-erp-system, task 7.2), so a fresh project's first request would
433
433
  find no image and the wake gateway would fall back to `tilt trigger`, which
434
434
  queues behind every other build. This local_resource builds the same image
435
435
  (same Dockerfile and target as docker_build: `production`, or `development` for Go with `dev.liveReload`; host network, and an allowlist
@@ -1,6 +1,6 @@
1
1
  # Tilt IDE Components
2
2
 
3
- Web-based IDE features integrated into the Flisk Landscape Tilt development environment.
3
+ Web-based IDE features integrated into the Flisk Tilt development environment.
4
4
 
5
5
  ## Overview
6
6
 
@@ -1,9 +1,9 @@
1
- # UI Enhancements Extension for Flisk Landscape Tilt IDE
1
+ # UI Enhancements Extension for Flisk Tilt IDE
2
2
  # Provides tooltips, icons, help panels, and cron jobs monitoring
3
3
 
4
4
  name: ui-enhancements
5
5
  version: 1.0.0
6
- author: Flisk Landscape Platform Team
6
+ author: Flisk Platform Team
7
7
  description: |
8
8
  Enhances the Tilt web UI with:
9
9
  - Contextual tooltips for all resources
@@ -6,7 +6,7 @@
6
6
  # 🔧 TILT SERVICE DEFAULTS MASTER CONFIG
7
7
  # =============================================================================
8
8
  #
9
- # Defines standard configurations for all services in the Flisk Landscape platform.
9
+ # Defines standard configurations for all services in the Flisk platform.
10
10
  # This provides consistent port allocation, health checks, and build settings.
11
11
  #
12
12
  # See: docs/TILT_MASTER_CONFIGS.md
@@ -6,7 +6,7 @@
6
6
  # 🏗️ TILT TECH STACK MASTER CONFIG
7
7
  # =============================================================================
8
8
  #
9
- # Defines the approved technology choices for the Flisk Landscape platform.
9
+ # Defines the approved technology choices for the Flisk platform.
10
10
  # This is the single source of truth for tech stack validation.
11
11
  #
12
12
  # See: docs/TILT_MASTER_CONFIGS.md