@wular/coder 0.4.13 → 0.5.0

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 (516) hide show
  1. package/README.md +3 -3
  2. package/dist/actions-CkMAM1Km.js +3 -0
  3. package/dist/agent-Bi5nbUhA.js +1 -0
  4. package/dist/app-server-BTpa5GBV.js +6 -0
  5. package/dist/approvals-CRwkc9vB.js +5 -0
  6. package/dist/apps-B6mUToTa.js +18 -0
  7. package/dist/args-CJsHYWbt.js +66 -0
  8. package/dist/async-CNhQ4wyZ.js +3 -0
  9. package/dist/auth-oCvlHitk.js +1 -0
  10. package/dist/builtin/coder/agent.json +6 -6
  11. package/dist/builtin/coder/system.md +4 -5
  12. package/dist/chat-4AiZEqKh.js +13 -0
  13. package/dist/{chat-bwKd3y6V.js → chat-Bfu9XKRa.js} +1 -1
  14. package/dist/cli.js +18 -13
  15. package/dist/{client-C4QCT6cG.js → client-nBo9Mhsr.js} +4 -4
  16. package/dist/cmd-Cu3OquA_.js +122 -0
  17. package/dist/config-D_RuO6gX.js +5 -0
  18. package/dist/connection-BXjn7gCC.js +1 -0
  19. package/dist/connections-Cswv7r8Z.js +2 -0
  20. package/dist/context-CFrDYenS.js +6 -0
  21. package/dist/crypto-Ittsv-m4.js +1 -0
  22. package/dist/dash/standalone/server/build-index.json +1 -1
  23. package/dist/dash/standalone/server/manifest.json +1682 -1444
  24. package/dist/dash/standalone/server/modules-server-server-react-server/src/agent/event-json.856d33f567e58d0e.js +30 -0
  25. package/dist/dash/standalone/server/modules-server-server-react-server/src/client/http.e78b470f4ecf125b.js +58 -0
  26. package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.de1f1311bab4252f.js → index.54c45900f2153d34.js} +46 -72
  27. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/task/{log-view.ec6391dbf3063330.js → view.e20379d8f741754a.js} +38 -0
  28. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/types.5bf5a41cedb54154.js +37 -0
  29. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.30ed8c28774a1a82.js → load.252f972b42c690e2.js} +18 -11
  30. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.118a70787eff1761.js → page.11efd0e175db9053.js} +5 -5
  31. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{loading.fcdfd50c21031895.js → loading.56c14183236be231.js} +2 -2
  32. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.98dfcd316c306258.js → notify.59ae138dc182d7c3.js} +1 -1
  33. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.74c59322f5fe8a2c.js → page.e9386951cedea737.js} +9 -9
  34. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{sign-out.730aa96b086ac996.js → sign-out.713d3ec10951fde5.js} +4 -4
  35. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agent-menu.1be5795272b245c8.js → agent-menu.5c780867b82081b1.js} +3 -3
  36. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.2c30ace077893029.js → agents-grid.f989d6f2d9ece6e4.js} +9 -9
  37. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{loading.733f0acc2af5ceda.js → loading.0130f8533d8f1b1e.js} +4 -4
  38. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/page.0f88720e52db99a2.js +48 -0
  39. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.b26006f060cd48f0.js → layout.8d2f0997462fc958.js} +89 -32
  40. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{loading.388aeaf0c2edf8f8.js → loading.90bf37c903ce6f0d.js} +1 -1
  41. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.4b23e9df21433bd3.js → page.bc93891522c8120d.js} +22 -88
  42. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{loading.e06845585ca67abc.js → loading.d56ef50b0694f975.js} +2 -2
  43. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.4048048acb374c67.js → page.cf5cf9afe38ab0e4.js} +51 -123
  44. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.000f2f87a48bfbc6.js → platform-actions.c44c7df7841719f2.js} +234 -134
  45. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/platform-state.6b6132518ca61635.js +21 -0
  46. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/platform-step.6e90cbfe308f28a0.js +82 -0
  47. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.ee0bb2dc4d403ec3.js → agent-settings-form.61de585104c2be10.js} +44 -66
  48. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{loading.0e3641f3e4abaa7c.js → loading.2800c65e45a4a1d9.js} +1 -1
  49. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.649b4ba135ded99b.js → page.4d06f759984a63b3.js} +11 -11
  50. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.195e168e8e41d797.js → loading.ea2925eab1d2e594.js} +1 -1
  51. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.96f7573208644f40.js → page.fb069bf82b727d27.js} +1 -1
  52. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{loading.905293c9aa9afbc9.js → loading.3a615597ca648452.js} +4 -4
  53. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.5f2b8585db8b27ad.js → page.0a472a0e269b8c01.js} +6 -6
  54. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{versions-list.8700f0106f4e8c15.js → versions-list.7ef7dfd5d8f5de43.js} +3 -3
  55. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{loading.f94b2f9ab04aaf21.js → loading.007326a04f05d46c.js} +5 -5
  56. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.e898c4b5ef16ecb0.js → page.a26aa7bc6ab655f0.js} +10 -10
  57. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/app-cards.361918fe58349aa1.js +142 -0
  58. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/loading.f0d91d48e2b79e50.js +14 -0
  59. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/page.3f60cf67517d0d31.js +99 -0
  60. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-pills.44e689e546fb042b.js → agent-pills.1012e04bfbc7bffd.js} +5 -5
  61. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.4c67dfbb7d28a416.js → agent-toggle.ffbf9a8b8b2fbde7.js} +3 -3
  62. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.9740a8e2f4b41f28.js → hero.0ae015a4fbe6321e.js} +4 -4
  63. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{instructions.85b1cd986a9edbb5.js → instructions.1b8c9189961c5a4f.js} +13 -4
  64. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{connect-repositories.ff8b78a03153239b.js → connect-repositories.9abe365f0098d358.js} +1 -1
  65. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.471af698b8060eba.js → editor.6548f8f757578f90.js} +164 -127
  66. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.b7b5c89e618e8f89.js → import-picker.577b1d84c7ab84e1.js} +11 -11
  67. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{loading.ecb9dfd4d0f9d107.js → loading.9b65a8c1cdc8346f.js} +5 -5
  68. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.880bdac7fe843635.js → page.2b326d00ccef5544.js} +9 -8
  69. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.81f7e055829854a3.js → layout.45a09107b19f0a7e.js} +89 -26
  70. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/operator-apps.f8d679f2d06b0ebc.js +155 -0
  71. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.8f8697b1b6b34ad7.js → page.5aa3ddc669366703.js} +10 -10
  72. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.fe608b8e661aba1d.js → page.5a5188f0fc75dcd2.js} +1 -1
  73. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/advanced-list.73cdadb2968a39d2.js +63 -0
  74. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/connection-add.353ec01fbb814f78.js +526 -0
  75. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/connections-list.cf4061ae909272c3.js +439 -0
  76. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.a4d8338c7f6a5702.js → credentials-list.fc4cff0289267551.js} +116 -101
  77. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.1443bbed1ff1d441.js → credentials.db01de2581ac65f3.js} +9 -9
  78. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/list.e7d6a422f6a869ea.js +201 -0
  79. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{loading.7ca95dcb4fb3362b.js → loading.71ca4f6c99a8a9d5.js} +1 -1
  80. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/models-list.acb92b39cab1d11c.js +635 -0
  81. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.805d0f8a2c5817d6.js → page.95fe939e36e5be55.js} +67 -41
  82. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.1e83449aa6593224.js → runners-list.5764eac3307d67cc.js} +42 -37
  83. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.17ac06593005b8ba.js → secrets-list.d316bb157f747f6c.js} +19 -17
  84. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/chain-hint.65c4cc04c78e8bfd.js +18 -0
  85. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.8c4a2b31b194ba3e.js → layout.4eb70f2de8674f93.js} +6 -6
  86. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/model-options.dc630cb6e2cbf83a.js +150 -0
  87. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/model-pick.a143e77f5ed5f9d3.js +160 -0
  88. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{page.a77996786278cda0.js → page.70cad0e981c33fa5.js} +1 -1
  89. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{settings-head.705be0b1129b97af.js → settings-head.004ced21e02ffa48.js} +5 -5
  90. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{tunnel-guide.29eee1a0b1852168.js → tunnel-guide.1bc6bff9d8019098.js} +1 -1
  91. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.19b4c50ef497aca1.js → create-link.18bd2b92cd23b73f.js} +5 -5
  92. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome-dialog.18cf32fa42247b91.js → outcome-dialog.a74e686aaed0c584.js} +3 -3
  93. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/outcome-toast.95f7be49430248eb.js +24 -0
  94. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome.cbbc8cd1bbbee01b.js → outcome.22a83d756e4020a7.js} +3 -6
  95. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.616f0b36bf7925bc.js → page.e39ee9236664d043.js} +8 -8
  96. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.a911169a820ba604.js → activity.441e82ab00344fb2.js} +12 -6
  97. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{loading.76f851da5cc5268d.js → loading.779ecdd9c9d2ff09.js} +5 -5
  98. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.ddb594bb6567ee13.js → page.24e121ea6eb578ba.js} +16 -9
  99. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-actions.4a4052a38db4bad3.js +408 -0
  100. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-missing.33ec27a4a5eafefe.js +27 -0
  101. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.3276538e8306fd8a.js → task-view.0cd3ec2655f44cc7.js} +43 -34
  102. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer-data.05fc39e1a7fd1ab7.js → composer-data.73225456d60d63e3.js} +4 -6
  103. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.dbf06b05c5e2eba3.js → composer.ee326fbf5e526fb1.js} +114 -121
  104. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/pending-approvals.7607998094780fdd.js +40 -0
  105. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{status.cb704b48ce86cc7d.js → status.d2c05c397780b833.js} +7 -1
  106. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{task.f089c1c122ed6dd2.js → task.a25847399a4dfb30.js} +9 -26
  107. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.5a00d69851dae119.js → tasks-list.e486cbd16ea3e963.js} +43 -35
  108. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.36e70c93f7d0feee.js → tasks-section.01510523d1556d59.js} +16 -10
  109. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.185b1ba0c803db3f.js → page.ede64f82388f9480.js} +5 -5
  110. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{custom-range.2e21c7f891966c15.js → custom-range.fe91164d7a311356.js} +3 -3
  111. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{day-chart.261b6651df2d3966.js → day-chart.20faaaf57c81ad9e.js} +1 -1
  112. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{loading.a7e0ec01bfa769e3.js → loading.5b973a8bb29197d5.js} +3 -3
  113. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.d41fea7676e37bfc.js → page.0499098badd3f5f8.js} +7 -7
  114. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{range-bar.69e68c9dae09f238.js → range-bar.0b9038e9df707843.js} +4 -4
  115. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{top-agents.18fc469e781e2305.js → top-agents.93c916167299ffb6.js} +2 -2
  116. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{layout.296d70b95894209f.js → layout.94ea3908b03bede6.js} +2 -2
  117. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/{page.a82be2fd23e9ac67.js → page.4827d64c71c0690a.js} +2 -2
  118. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{drawer.d3e61538dbc8ec39.js → drawer.1a08ff611df7fe38.js} +2 -2
  119. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{foreign-link.8c6adf9c5a6f467c.js → foreign-link.1d4f63a0379cbd1d.js} +3 -3
  120. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{loading-card.1cea8a722c10b998.js → loading-card.77bea8c5870b5d3c.js} +5 -5
  121. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.87b92529dbb53ceb.js → page-head.2eb1e0213eb50349.js} +3 -2
  122. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.c32d78562f75db25.js → stream.e3800e736f832124.js} +2 -2
  123. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.44075fa7e04575e8.js → task-toasts.3b7eeee29fc327de.js} +28 -18
  124. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{theme-choices.85100ed66d6f9200.js → theme-choices.fc86071c1b634176.js} +2 -2
  125. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{back.d6109e72fbd04b45.js → back.7aa0ae82dbec38cd.js} +3 -3
  126. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{org.d3abfd4053b711ce.js → org.853d173b55368728.js} +1 -1
  127. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{side-toggle.489faf1a259479f7.js → side-toggle.be7d2a7529557435.js} +2 -2
  128. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{badge.c0bc352791a95fd6.js → badge.9f63fd615cf0ee22.js} +2 -2
  129. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/button.2b18ba19ae01e2bb.css.pnext-asset.js +0 -0
  130. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{button.ce9e6cdb08ca86db.js → button.b62fa52e18fa338b.js} +2 -2
  131. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/card.4ab7ad42a0770726.css.pnext-asset.js +0 -0
  132. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{card.9f0d45b73bc78b4f.js → card.c0030eafd76587e3.js} +21 -9
  133. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{collapse.93e4d1b20c2873ed.js → collapse.eb578fdf42029754.js} +1 -1
  134. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{combo.54270c0251466fda.js → combo.e4e08287494081a3.js} +2 -2
  135. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{confirm.29e198be34578222.js → confirm.e21b7f5e486dafb8.js} +3 -3
  136. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{copy.bd6fc1577a393965.js → copy.043e0695c08c72f9.js} +2 -2
  137. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.81bb9a5c60cd1089.js → filter.0730dccad6332327.js} +6 -6
  138. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/filter.6fdff1e7355aaa0e.css.pnext-asset.js +0 -0
  139. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{icons.e36c72f54750663a.js → icons.f769275420d072ce.js} +4 -0
  140. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu-items.1d082ac4dae8f3d4.js → menu-items.759a1b1f7c5ee365.js} +2 -2
  141. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu.ee45bace979944b6.js → menu.7f558c7c6f6345d5.js} +3 -3
  142. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/menu.cd96fa0495fe0fde.css.pnext-asset.js +0 -0
  143. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{modal.0b69c7fd9db025b9.js → modal.08ac85d31f4c76c1.js} +7 -6
  144. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{select.2eb33e5bea28d804.js → select.0ee9e8f04ddd8b47.js} +9 -6
  145. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tail.04132db0c5033d4f.js → tail.7eb303330802ac18.js} +2 -2
  146. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/toolbar.cdbd0357f2c5e1fe.css.pnext-asset.js +0 -0
  147. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.8b3a460a65edf85a.js → toolbar.ff8367c641d28c1e.js} +2 -2
  148. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.67dd6f8ab1ae067d.js → action.f22057e7dfac40fe.js} +1 -1
  149. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.78267fa3d7905d17.js → client.c8d7efefb6194d7d.js} +1 -1
  150. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/routes/http.394704f4f12ada08.js +165 -0
  151. package/dist/dash/standalone/server/modules-server-server-react-server/src/utils/crypto.24a6439ff8d10d3d.js +11 -0
  152. package/dist/dash/standalone/static/assets/chunks/advanced-list-850a950afe4f6996.js +1 -0
  153. package/dist/dash/standalone/static/assets/chunks/agent-pills-9f6fa120182db948.js +2 -0
  154. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-a8ee12513a02b1c5.js +1 -0
  155. package/dist/dash/standalone/static/assets/chunks/agent-toggle-521136f20a71400d.js +1 -0
  156. package/dist/dash/standalone/static/assets/chunks/agents-grid-bcd13cd7a46224a6.js +1 -0
  157. package/dist/dash/standalone/static/assets/chunks/{back-e29cb10f5548ddae.js → back-2d67134b122334f4.js} +1 -1
  158. package/dist/dash/standalone/static/assets/chunks/chain-hint-53675e299a865420.js +1 -0
  159. package/dist/dash/standalone/static/assets/chunks/{combo-702c94817bf6ac17.js → combo-cb2c62fe580a8903.js} +1 -1
  160. package/dist/dash/standalone/static/assets/chunks/composer-4a46a458495ce3ba.js +1 -0
  161. package/dist/dash/standalone/static/assets/chunks/composer-92553de43276510b.js +1 -0
  162. package/dist/dash/standalone/static/assets/chunks/composer-data-890f71bade4f0616.js +1 -0
  163. package/dist/dash/standalone/static/assets/chunks/{confirm-a78147b6ecef3847.js → confirm-d6b2c5b1deccd1e8.js} +1 -1
  164. package/dist/dash/standalone/static/assets/chunks/{connect-repositories-7770ab805160028d.js → connect-repositories-226bf70aa81c29d8.js} +1 -1
  165. package/dist/dash/standalone/static/assets/chunks/connections-list-a33d6637e2d52fcf.js +1 -0
  166. package/dist/dash/standalone/static/assets/chunks/{copy-bdc60bdafe336316.js → copy-294c6052b3b69424.js} +1 -1
  167. package/dist/dash/standalone/static/assets/chunks/create-link-b2480a7601967e94.js +1 -0
  168. package/dist/dash/standalone/static/assets/chunks/credentials-list-90fc1c6d202e1461.js +1 -0
  169. package/dist/dash/standalone/static/assets/chunks/custom-range-efa1b6a71ba84597.js +1 -0
  170. package/dist/dash/standalone/static/assets/chunks/editor-53a3e1a893644fff.js +6 -0
  171. package/dist/dash/standalone/static/assets/chunks/{field-bb8191aa02d07282.js → field-4d374d5ed3f43d7e.js} +1 -1
  172. package/dist/dash/standalone/static/assets/chunks/instructions-734d21dfb8f6393e.js +1 -0
  173. package/dist/dash/standalone/static/assets/chunks/instructions-d3dc01b2f90820db.js +2 -0
  174. package/dist/dash/standalone/static/assets/chunks/list-16247e39898cd20e.js +1 -0
  175. package/dist/dash/standalone/static/assets/chunks/model-options-d29e934a3de20ab4.js +1 -0
  176. package/dist/dash/standalone/static/assets/chunks/models-list-6d93523660503dfb.js +1 -0
  177. package/dist/dash/standalone/static/assets/chunks/{outcome-dialog-fde11a52c282301d.js → outcome-dialog-755fc581cbc2836e.js} +1 -1
  178. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-77e13c848000a3dc.js +1 -0
  179. package/dist/dash/standalone/static/assets/chunks/outcome-toast-9d5e9713c23882f5.js +1 -0
  180. package/dist/dash/standalone/static/assets/chunks/platform-actions-08e9b3816dcd62b1.js +1 -0
  181. package/dist/dash/standalone/static/assets/chunks/platform-actions-832904f5694ef902.js +1 -0
  182. package/dist/dash/standalone/static/assets/chunks/platform-step-29469fd4eaddc42a.js +1 -0
  183. package/dist/dash/standalone/static/assets/chunks/platform-step-5881a8be1e761e00.js +1 -0
  184. package/dist/dash/standalone/static/assets/chunks/runners-list-dd759d408c643a29.js +1 -0
  185. package/dist/dash/standalone/static/assets/chunks/{runtime-6e12333f12903a62-1.js → runtime-9b28886f3cbe0ed3-1.js} +1 -1
  186. package/dist/dash/standalone/static/assets/chunks/secrets-list-be1f634a1b077baa.js +1 -0
  187. package/dist/dash/standalone/static/assets/chunks/{segmented-0b6dc6b93c35e0f5.js → segmented-f646bfa8aa0aa449.js} +1 -1
  188. package/dist/dash/standalone/static/assets/chunks/shared-init-926144b364908b3c.js +9 -0
  189. package/dist/dash/standalone/static/assets/chunks/shared-init-953965859f7bf6b9.js +1 -0
  190. package/dist/dash/standalone/static/assets/chunks/shared-init-9b28886f3cbe0ed3-2.js +1 -0
  191. package/dist/dash/standalone/static/assets/chunks/shared-init-b42d2c06c25d1e2b.js +1 -0
  192. package/dist/dash/standalone/static/assets/chunks/side-toggle-8c21d39a1e284887.js +1 -0
  193. package/dist/dash/standalone/static/assets/chunks/{tail-f8804b80cf32f8d0.js → tail-d13c4cc0cf11ffd1.js} +1 -1
  194. package/dist/dash/standalone/static/assets/chunks/task-423e6a3f2527f534.js +1 -0
  195. package/dist/dash/standalone/static/assets/chunks/task-actions-5917357eac6504ca.js +3 -0
  196. package/dist/dash/standalone/static/assets/chunks/task-view-c6ee43d2ddb6db90.js +3 -0
  197. package/dist/dash/standalone/static/assets/chunks/tasks-list-2c5ce592e00fda45.js +1 -0
  198. package/dist/dash/standalone/static/assets/chunks/versions-list-177ae397ad64dcea.js +1 -0
  199. package/dist/dash/standalone/static/assets/chunks/{wular-pnext-6e12333f12903a62-0.js → wular-pnext-9b28886f3cbe0ed3-0.js} +1 -1
  200. package/dist/dash/standalone/static/assets/create-param-id-2c72f3e32e7f8b8d.css +1 -0
  201. package/dist/dash/standalone/static/assets/dash-param-org-a7f30a8c5a6fa651.css +1 -0
  202. package/dist/dash/standalone/static/assets/dash-param-org-account-76fffb9337b633f2.css +1 -0
  203. package/dist/dash/standalone/static/assets/dash-param-org-agents-cc5d59edfc3cf0b1.css +1 -0
  204. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-170499c849114150.css +1 -0
  205. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-00243b34eb094b95.css +1 -0
  206. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-199a9991de1bf2d9.css +1 -0
  207. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-25ae07e0b3f5b252.css +1 -0
  208. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-param-app-a6d559f0e26bd01b.css +1 -0
  209. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-9f8faa8f7d714699.css +1 -0
  210. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-129adcdc293ceac8.css +1 -0
  211. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-0e037c66e3977f33.css +1 -0
  212. package/dist/dash/standalone/static/assets/dash-param-org-operator-8d5ef55834d8deba.css +1 -0
  213. package/dist/dash/standalone/static/assets/dash-param-org-settings-7138821f5422d087.css +1 -0
  214. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-586fec34f285e9cb.css +1 -0
  215. package/dist/dash/standalone/static/assets/dash-param-org-setup-67679c1f84f352cf.css +1 -0
  216. package/dist/dash/standalone/static/assets/dash-param-org-tasks-8a44e171984d32a1.css +1 -0
  217. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-b9d3a7a1bd1dd666.css +1 -0
  218. package/dist/dash/standalone/static/assets/dash-param-org-usage-c534db20ce538fd2.css +1 -0
  219. package/dist/dash/standalone/static/assets/global-df2c26ad15039e8a.css +1 -0
  220. package/dist/dash/standalone/static/assets/{login-9760b85feae40270.css → login-148795638d6ff5d4.css} +1 -1
  221. package/dist/dash/standalone/static/assets/pnext-client-095026242a079175.js +1 -0
  222. package/dist/dash/standalone/static/assets/pnext-client-1dfeb8c3ef155f87.js +1 -0
  223. package/dist/dash/standalone/static/assets/pnext-client-2358423351524403.js +1 -0
  224. package/dist/dash/standalone/static/assets/pnext-client-28a6557216627768.js +1 -0
  225. package/dist/dash/standalone/static/assets/pnext-client-31a4ee73945fee19.js +1 -0
  226. package/dist/dash/standalone/static/assets/pnext-client-3dfdc76bb8712b82.js +1 -0
  227. package/dist/dash/standalone/static/assets/pnext-client-4355ac87961d78c1.js +1 -0
  228. package/dist/dash/standalone/static/assets/pnext-client-43c7a0046572e0c9.js +1 -0
  229. package/dist/dash/standalone/static/assets/pnext-client-53dc7db68d67e0b1.js +1 -0
  230. package/dist/dash/standalone/static/assets/pnext-client-5835cb35488bdf7f.js +1 -0
  231. package/dist/dash/standalone/static/assets/pnext-client-638b390bc23ab1ae.js +1 -0
  232. package/dist/dash/standalone/static/assets/pnext-client-67f832c6c51a66cd.js +1 -0
  233. package/dist/dash/standalone/static/assets/pnext-client-6fc99f0abe77c2ea.js +1 -0
  234. package/dist/dash/standalone/static/assets/pnext-client-7d99965f28ac7604.js +1 -0
  235. package/dist/dash/standalone/static/assets/pnext-client-7ecbd7a0cbe4e231.js +1 -0
  236. package/dist/dash/standalone/static/assets/pnext-client-8250bd3b86d038a3.js +1 -0
  237. package/dist/dash/standalone/static/assets/pnext-client-bfd06805a43c6dee.js +1 -0
  238. package/dist/dash/standalone/static/assets/pnext-client-ce2943f17e9d9ac3.js +1 -0
  239. package/dist/dash/standalone/static/assets/pnext-client-ed31510d4615a5a5.js +1 -0
  240. package/dist/dash/standalone/static/assets/pnext-client-f0496bf51e161ddd.js +1 -0
  241. package/dist/definition-4on4SG5J.js +1 -0
  242. package/dist/discover-DvzAbQvU.js +1 -0
  243. package/dist/dispatch-BaW2X6Sc.js +12 -0
  244. package/dist/{dist-DAnSqY1s.js → dist-B5qUdWUG.js} +35 -35
  245. package/dist/{dist-B2jiMMxZ.js → dist-Clxdruuu.js} +3 -3
  246. package/dist/{dist-ClCNj65n.js → dist-CymLGfHl.js} +4 -4
  247. package/dist/{adapter-Bz0E-DAY.js → dist-DX0JzVC6.js} +990 -990
  248. package/dist/{adapter-CsacmMmv.js → dist-DfD9WmV8.js} +39 -39
  249. package/dist/dist-node-B8VIVzUc.js +20 -0
  250. package/dist/docs-CbgaMPvq.js +2 -0
  251. package/dist/drive-Tk6JvQK5.js +1 -0
  252. package/dist/drizzle-orm-CYU7WOQS.js +2 -0
  253. package/dist/{emit-BrkJJPUE.js → emit-BgeqsCkC.js} +3 -3
  254. package/dist/env-_AxrvBXP.js +1 -0
  255. package/dist/errors-DK_trCff.js +1 -0
  256. package/dist/exec-CAaYFJD1.js +3 -0
  257. package/dist/executor-Chc0zawh.js +11 -0
  258. package/dist/flow/builtin/review/index.d.ts +2 -2
  259. package/dist/flow/builtin/review/index.js +9 -9
  260. package/dist/flow/index.d.ts +1 -1
  261. package/dist/flow/index.js +1 -1
  262. package/dist/github-actions-2RjyRseX.js +36 -0
  263. package/dist/{hook-CIipj9MJ.js → hook-COWDSO4a.js} +1 -1
  264. package/dist/http-615JJgHo.js +5 -0
  265. package/dist/http-DRk8cDjf.js +1 -0
  266. package/dist/{index-ChcxzFdB.d.ts → index-ezhbF5wC.d.ts} +335 -244
  267. package/dist/integrations-BVmsk64f.js +9 -0
  268. package/dist/lib/broker.js +2 -2
  269. package/dist/load-PqaDHiHX.js +2 -0
  270. package/dist/local-BMGcCk8N.js +1 -0
  271. package/dist/local-BzZuOwgI.js +5 -0
  272. package/dist/login-BDKTNynK.js +8 -0
  273. package/dist/maintenance-d43Ml540.js +1 -0
  274. package/dist/mcp-BGam3G_B.js +1 -0
  275. package/dist/mcp-BGx48pyR.js +25 -0
  276. package/dist/mcp-BNz_l5TV2.js +1 -0
  277. package/dist/metadata-D_bBfr3H.js +1 -0
  278. package/dist/models-D1NXi6ni.js +1 -0
  279. package/dist/output-BKeyLbvt.js +5 -0
  280. package/dist/permission-BkYxjiFR.js +1 -0
  281. package/dist/prompt-CpwbsEWM.js +4 -0
  282. package/dist/refresh-yfEi5SQs.js +1 -0
  283. package/dist/remote-BbXx6S9P.js +1 -0
  284. package/dist/remote-rArUa01V.js +2 -0
  285. package/dist/runner-DG9jrX5H.js +1 -0
  286. package/dist/runner.json +1 -1
  287. package/dist/runner.tgz +0 -0
  288. package/dist/schema.d.ts +2 -2
  289. package/dist/schema.js +2 -3
  290. package/dist/sdk.d.ts +2858 -1376
  291. package/dist/sdk.js +1 -1
  292. package/dist/serve-B-5rDiZm.js +1 -0
  293. package/dist/serve-CvnrGAj7.js +12 -0
  294. package/dist/serve-DoYbHm_k.js +5 -0
  295. package/dist/session-Dtje9y-r.js +1 -0
  296. package/dist/sessions-DIz9fyRN.js +1 -0
  297. package/dist/shared--aE4olIO.js +1 -0
  298. package/dist/sign-in-wWkyaq5X.js +3 -0
  299. package/dist/state-Br-Fuaxg.js +6 -0
  300. package/dist/store-CzQLgCzt.js +352 -0
  301. package/dist/task-CFt85vTy.js +1 -0
  302. package/dist/task-N0qhnKpK.js +7 -0
  303. package/dist/tool-search-BkdgVolu.js +6 -0
  304. package/dist/tools-DNgEptor.js +1 -0
  305. package/dist/tools-oQvFAnh5.js +1 -0
  306. package/dist/tools-search-D1zArRyJ.js +1 -0
  307. package/dist/turn-Cc-v-eSy.js +3 -0
  308. package/dist/types-DHBqXFE2.js +1 -0
  309. package/dist/update-check-UyRob3yy.js +1 -0
  310. package/dist/view-D-rbQ1Kz.js +4 -0
  311. package/dist/views-3TxH367C.js +2 -0
  312. package/dist/worker-BMuKKiIa.js +1 -0
  313. package/dist/worker-CIHY9L42.js +7 -0
  314. package/dist/zod-_-snqfdO.js +1 -0
  315. package/dist/zod.js +65 -1
  316. package/docs/agents/coder.md +5 -1
  317. package/docs/agents/index.md +53 -82
  318. package/docs/approvals.md +47 -0
  319. package/docs/cli/agent.md +34 -13
  320. package/docs/cli/auth.md +1 -1
  321. package/docs/cli/connection.md +22 -21
  322. package/docs/cli/index.md +14 -12
  323. package/docs/cli/model.md +11 -11
  324. package/docs/cli/task.md +28 -30
  325. package/docs/config.md +37 -65
  326. package/docs/connections.md +80 -0
  327. package/docs/dash.md +23 -19
  328. package/docs/flows.md +46 -213
  329. package/docs/models.md +48 -78
  330. package/docs/review.md +20 -17
  331. package/docs/runners.md +49 -0
  332. package/docs/sdk.md +49 -73
  333. package/docs/self-host.md +79 -81
  334. package/package.json +4 -5
  335. package/plugins/agents/skills/coder/SKILL.md +3 -3
  336. package/plugins/claude/skills/dispatch/SKILL.md +3 -3
  337. package/plugins/cursor/README.md +3 -3
  338. package/plugins/cursor/skills/coder/SKILL.md +3 -3
  339. package/dist/actions-D12xDiQS.js +0 -4
  340. package/dist/adapter-DzpdWewB.js +0 -1
  341. package/dist/agent-JJStALIx.js +0 -8
  342. package/dist/apps-Bnk7F3A2.js +0 -379
  343. package/dist/args-Dqf5Y1RP.js +0 -1
  344. package/dist/async-Tj4zKHXR.js +0 -3
  345. package/dist/auth-BhpnOCbn.js +0 -1
  346. package/dist/base64url-CsVsW4Id.js +0 -1
  347. package/dist/chat-CSepnsrK.js +0 -13
  348. package/dist/cmd-BHZwhrfa.js +0 -118
  349. package/dist/connection-BkYTuJjV.js +0 -1
  350. package/dist/context-zhSlmXOp.js +0 -7
  351. package/dist/conversation-DT-35cEt.js +0 -1
  352. package/dist/core-DwsAMCnL.js +0 -65
  353. package/dist/dash/standalone/node_modules/contextjsx/dist/index.mjs +0 -1
  354. package/dist/dash/standalone/node_modules/contextjsx/dist/jsx-runtime.mjs +0 -1
  355. package/dist/dash/standalone/node_modules/contextjsx/dist/src-BJ0QFeB8.mjs +0 -2
  356. package/dist/dash/standalone/node_modules/contextjsx/package.json +0 -70
  357. package/dist/dash/standalone/server/modules-server-server-react-server/src/agent/context/turn.6bb73458768e222e.js +0 -129
  358. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/defaults.e972c134a1ae918f.js +0 -55
  359. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/auth/sign-in.661b3a4139af5bd7.js +0 -11
  360. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/page.04762872666a6f0a.js +0 -26
  361. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/connect-apps.8a20501ccb244421.js +0 -36
  362. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/page.d066b77dd3187026.js +0 -65
  363. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/operator-apps.09bf294d753ee9d7.js +0 -115
  364. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/connections-list.97381888bfdd711b.js +0 -642
  365. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/engines-list.d47db60d7dc01ebd.js +0 -73
  366. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/list.a5b273558fb7f0f0.js +0 -156
  367. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/models-list.31d369f1b7ab45da.js +0 -444
  368. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/model-options.73f8d0d54f79d8e3.js +0 -100
  369. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-actions.51fbeac76459433a.js +0 -240
  370. package/dist/dash/standalone/static/assets/chunks/action-a76e495fb39a73d3.js +0 -1
  371. package/dist/dash/standalone/static/assets/chunks/agent-pills-4d3c6a2aa9eb1522.js +0 -2
  372. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-f7231a66e391f6b6.js +0 -1
  373. package/dist/dash/standalone/static/assets/chunks/agent-toggle-d7d27123f2070f18.js +0 -1
  374. package/dist/dash/standalone/static/assets/chunks/agents-grid-185ecb3d86c6c447.js +0 -1
  375. package/dist/dash/standalone/static/assets/chunks/composer-56ebf36d63400423.js +0 -1
  376. package/dist/dash/standalone/static/assets/chunks/composer-a686289a79f64bae.js +0 -1
  377. package/dist/dash/standalone/static/assets/chunks/composer-data-f46a9bc7a14b4f9a.js +0 -1
  378. package/dist/dash/standalone/static/assets/chunks/connect-apps-696726aedab42c96.js +0 -1
  379. package/dist/dash/standalone/static/assets/chunks/connections-list-07559f145f3e3da3.js +0 -1
  380. package/dist/dash/standalone/static/assets/chunks/create-link-426b0a5871ee41dd.js +0 -1
  381. package/dist/dash/standalone/static/assets/chunks/credentials-list-f07d090410104148.js +0 -1
  382. package/dist/dash/standalone/static/assets/chunks/custom-range-6618f32ef6cd4e80.js +0 -1
  383. package/dist/dash/standalone/static/assets/chunks/editor-0860e370cbfc6b03.js +0 -6
  384. package/dist/dash/standalone/static/assets/chunks/engines-list-31b9bb7885924b05.js +0 -1
  385. package/dist/dash/standalone/static/assets/chunks/format-a27067f0186e78ac.js +0 -1
  386. package/dist/dash/standalone/static/assets/chunks/instructions-06b63e558f879da5.js +0 -1
  387. package/dist/dash/standalone/static/assets/chunks/instructions-2d9fbcbfadac4f40.js +0 -2
  388. package/dist/dash/standalone/static/assets/chunks/list-2773686bf8df64c7.js +0 -1
  389. package/dist/dash/standalone/static/assets/chunks/model-options-8d2170eebe0d061d.js +0 -1
  390. package/dist/dash/standalone/static/assets/chunks/models-list-03611e64b6a07efe.js +0 -1
  391. package/dist/dash/standalone/static/assets/chunks/notice-d14fdac28139c0a8.js +0 -1
  392. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-d3ba8ef89c59f801.js +0 -1
  393. package/dist/dash/standalone/static/assets/chunks/platform-actions-2a71c62b9f7eaef3.js +0 -1
  394. package/dist/dash/standalone/static/assets/chunks/platform-actions-70600c9943320152.js +0 -1
  395. package/dist/dash/standalone/static/assets/chunks/runners-list-edf536eb8003eab5.js +0 -1
  396. package/dist/dash/standalone/static/assets/chunks/secrets-list-e86122f73525ff95.js +0 -1
  397. package/dist/dash/standalone/static/assets/chunks/shared-init-6e12333f12903a62-2.js +0 -1
  398. package/dist/dash/standalone/static/assets/chunks/shared-init-b281027d465e004f.js +0 -5
  399. package/dist/dash/standalone/static/assets/chunks/shared-init-c3bd249cf1eca6d1.js +0 -2
  400. package/dist/dash/standalone/static/assets/chunks/side-toggle-9b3af821cfe4c824.js +0 -1
  401. package/dist/dash/standalone/static/assets/chunks/task-a37e7c26e82eb77d.js +0 -1
  402. package/dist/dash/standalone/static/assets/chunks/task-actions-705395565f2d83b8.js +0 -1
  403. package/dist/dash/standalone/static/assets/chunks/task-view-cb21169f38b56d15.js +0 -6
  404. package/dist/dash/standalone/static/assets/chunks/tasks-list-d7dccfd7e0623ae0.js +0 -1
  405. package/dist/dash/standalone/static/assets/chunks/versions-list-f8f2e71df691efda.js +0 -1
  406. package/dist/dash/standalone/static/assets/connect-a550b6f3a8c00186.css +0 -1
  407. package/dist/dash/standalone/static/assets/create-param-id-c2c756f652f2fc30.css +0 -1
  408. package/dist/dash/standalone/static/assets/dash-param-org-account-702f8a1b213e4026.css +0 -1
  409. package/dist/dash/standalone/static/assets/dash-param-org-agents-aad2f9f93c06e9ab.css +0 -1
  410. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-f9dcbcec36586f2b.css +0 -1
  411. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-8ff47f5d622c1f9b.css +0 -1
  412. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-907036d553cfeb36.css +0 -1
  413. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-5cc77badad15f00c.css +0 -1
  414. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-705d7c15868b4fd6.css +0 -1
  415. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-04e189c045098772.css +0 -1
  416. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-76fcd1ce7b3dae71.css +0 -1
  417. package/dist/dash/standalone/static/assets/dash-param-org-eccb6bb9297a53e6.css +0 -1
  418. package/dist/dash/standalone/static/assets/dash-param-org-operator-635a121f7a9a95bd.css +0 -1
  419. package/dist/dash/standalone/static/assets/dash-param-org-settings-a3297dc4d9e0c961.css +0 -1
  420. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-bcb06f81d9e8268d.css +0 -1
  421. package/dist/dash/standalone/static/assets/dash-param-org-setup-df4be8b188b9777f.css +0 -1
  422. package/dist/dash/standalone/static/assets/dash-param-org-tasks-16f9866a1b4801cd.css +0 -1
  423. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-02ae551dcd852b57.css +0 -1
  424. package/dist/dash/standalone/static/assets/dash-param-org-usage-f2175403069aab99.css +0 -1
  425. package/dist/dash/standalone/static/assets/global-e1de614478b64717.css +0 -1
  426. package/dist/dash/standalone/static/assets/pnext-client-0dc829ba60df5c26.js +0 -1
  427. package/dist/dash/standalone/static/assets/pnext-client-14d191f7f1da6602.js +0 -1
  428. package/dist/dash/standalone/static/assets/pnext-client-169eaa63783b71fd.js +0 -1
  429. package/dist/dash/standalone/static/assets/pnext-client-1e34cfefafa70fac.js +0 -1
  430. package/dist/dash/standalone/static/assets/pnext-client-285d61f00a80f40b.js +0 -1
  431. package/dist/dash/standalone/static/assets/pnext-client-35b89c3ba23ee845.js +0 -1
  432. package/dist/dash/standalone/static/assets/pnext-client-6c42784e005d4b87.js +0 -1
  433. package/dist/dash/standalone/static/assets/pnext-client-6cd93f9bd4cf6ffd.js +0 -1
  434. package/dist/dash/standalone/static/assets/pnext-client-7355f473fade532d.js +0 -1
  435. package/dist/dash/standalone/static/assets/pnext-client-815c3c297f75efb0.js +0 -1
  436. package/dist/dash/standalone/static/assets/pnext-client-87fe73c10a4dc33c.js +0 -1
  437. package/dist/dash/standalone/static/assets/pnext-client-98b56a142d441260.js +0 -1
  438. package/dist/dash/standalone/static/assets/pnext-client-b4bafe68a40f720b.js +0 -1
  439. package/dist/dash/standalone/static/assets/pnext-client-bf61ff39bdc0db48.js +0 -1
  440. package/dist/dash/standalone/static/assets/pnext-client-c9fa86c244813f74.js +0 -1
  441. package/dist/dash/standalone/static/assets/pnext-client-d2e7a75e16221224.js +0 -1
  442. package/dist/dash/standalone/static/assets/pnext-client-d34e774405ea8da8.js +0 -1
  443. package/dist/dash/standalone/static/assets/pnext-client-d511822afdb41d1d.js +0 -1
  444. package/dist/dash/standalone/static/assets/pnext-client-e113aa2f25ecfe01.js +0 -1
  445. package/dist/dash/standalone/static/assets/pnext-client-eb62f461d0c32266.js +0 -1
  446. package/dist/discover-CHfF4cEz.js +0 -1
  447. package/dist/dist-node-Bv1kCqyi.js +0 -20
  448. package/dist/docs-KHc0_gFX.js +0 -2
  449. package/dist/drive-Bwl7Bjme.js +0 -1
  450. package/dist/env-6Y-NNnYD.js +0 -1
  451. package/dist/errors-DO_IltpP.js +0 -16
  452. package/dist/exec-BmTa0vcO.js +0 -4
  453. package/dist/executor-ufWRqhdS.js +0 -11
  454. package/dist/http-Cg8PSe-c.js +0 -1
  455. package/dist/integrations-I7fRDk_l.js +0 -4
  456. package/dist/load-BDlEFetB.js +0 -2
  457. package/dist/local-COlczLwI.js +0 -5
  458. package/dist/log-view-CfX9lakH.js +0 -4
  459. package/dist/maintenance-CKCIWOvn.js +0 -1
  460. package/dist/match-CufHAZQH.js +0 -1
  461. package/dist/mcp-BkwmRHI9.js +0 -2
  462. package/dist/mcp-CGU7aoJ-.js +0 -1
  463. package/dist/mcp-DAHbhfUh.js +0 -13
  464. package/dist/models-CzggS7p2.js +0 -1
  465. package/dist/output-SNqdgh9A.js +0 -17
  466. package/dist/permission-MWFjKxqX.js +0 -1
  467. package/dist/prompt-CIx4jwQF.js +0 -8
  468. package/dist/refresh-CxsaX5R9.js +0 -1
  469. package/dist/remote-C9Hj2cby.js +0 -2
  470. package/dist/remote-HUZCWgfl.js +0 -3
  471. package/dist/runner-DYysY1-G.js +0 -1
  472. package/dist/runners-CfaGE0nV.js +0 -36
  473. package/dist/serve-DdAdw7Su.js +0 -4
  474. package/dist/serve-NQykWAKV.js +0 -1
  475. package/dist/serve-vKNqVaVy.js +0 -12
  476. package/dist/slack-BtKvW_4v.js +0 -5
  477. package/dist/task-CFxs0E_J.js +0 -1
  478. package/dist/task-iuYQ0zAK.js +0 -7
  479. package/dist/tools-B6ZxcqRi.js +0 -2
  480. package/dist/tools-FVop8XYG.js +0 -1
  481. package/dist/tools-search-kjKKolwp.js +0 -1
  482. package/dist/turn-DQ13lkPF.js +0 -2
  483. package/dist/types-DPtbvoo3.js +0 -1
  484. package/dist/types-DmThhjcW.js +0 -1
  485. package/dist/views-CMHXBMJp.js +0 -3
  486. package/dist/wire-C9CupY_A.js +0 -1
  487. package/dist/worker-BQpx1dPr.js +0 -9
  488. package/dist/worker-sTJL2eoe.js +0 -1
  489. package/dist/zod-BoqHoRCH.js +0 -1
  490. package/docs/access.md +0 -33
  491. package/docs/mcp.md +0 -54
  492. /package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{errors.1bd0542d832ae0c0.js → errors.200335e62a9d9564.js} +0 -0
  493. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.061f6006f2685f5e.css.pnext-asset.js → page.abe7a6d16eb15c41.css.pnext-asset.js} +0 -0
  494. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.107e622830bff31d.css.pnext-asset.js → page.1c7947d6f79d6447.css.pnext-asset.js} +0 -0
  495. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{settings/agent-settings-form.ca926c58d15044aa.css.pnext-asset.js → platforms/platform-step.a722e3b8539a0f85.css.pnext-asset.js} +0 -0
  496. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/{agent/instructions.446bccc375f30eeb.css.pnext-asset.js → [slug]/(tabs)/settings/agent-settings-form.bf5430862c505c55.css.pnext-asset.js} +0 -0
  497. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/{editor/editor.1eb1bce282b289c9.css.pnext-asset.js → [slug]/platforms/[app]/@/app/dash/[org]/agents/[slug]/(tabs)/platforms/page.db05694ed4113dab.css.pnext-asset.js} +0 -0
  498. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.a4efa8d807fe5416.css.pnext-asset.js → agents/[slug]/platforms/[app]/app-cards.d2f5c8d620066e05.css.pnext-asset.js} +0 -0
  499. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{settings/[tab]/@/app/dash/[org]/setup/outcome.3ad5f7ec67e5238d.css.pnext-asset.js → agents/agent/instructions.4c31196fcbf9846c.css.pnext-asset.js} +0 -0
  500. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{settings/[tab]/connections-list.46786fe36b121a43.css.pnext-asset.js → agents/editor/editor.6b9a1d5c0a490153.css.pnext-asset.js} +0 -0
  501. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{settings/[tab]/credentials-list.f7c27f170ec1e868.css.pnext-asset.js → layout.52abe52dcfa736d7.css.pnext-asset.js} +0 -0
  502. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{engines-list.9927d602ebe9e7fc.css.pnext-asset.js → advanced-list.819e410e4178b328.css.pnext-asset.js} +0 -0
  503. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.8cbee173a5aff98d.css.pnext-asset.js → connections-list.87962937438296f1.css.pnext-asset.js} +0 -0
  504. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.53c7ea80b6fb734c.css.pnext-asset.js → credentials-list.973f91751525bcb6.css.pnext-asset.js} +0 -0
  505. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{tasks/[id]/task-view.42337a0d7c6ad0b6.css.pnext-asset.js → settings/[tab]/list.69d1b62c4066015b.css.pnext-asset.js} +0 -0
  506. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{tasks/composer.5b8687662e1629fa.css.pnext-asset.js → settings/[tab]/models-list.efd3f5781314c1d9.css.pnext-asset.js} +0 -0
  507. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{tasks/list/tasks-list.2f90c4410f843fff.css.pnext-asset.js → settings/[tab]/runners-list.df35d33aba0c8b07.css.pnext-asset.js} +0 -0
  508. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{globals.f8ac779f0ebf888b.css.pnext-asset.js → dash/[org]/settings/model-pick.74fababc0cc0bba7.css.pnext-asset.js} +0 -0
  509. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{responsive.ebc5f7d77b4b86a0.css.pnext-asset.js → dash/[org]/tasks/[id]/task-view.aae9fa481b9015d1.css.pnext-asset.js} +0 -0
  510. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/frame/task-toasts.d13d9f628e530552.css.pnext-asset.js → app/dash/[org]/tasks/composer.33d49ad218253703.css.pnext-asset.js} +0 -0
  511. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/badge.0cb1513f8b077560.css.pnext-asset.js → app/dash/[org]/tasks/list/pending-approvals.07e59a9cae7ccf29.css.pnext-asset.js} +0 -0
  512. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/button.d7f4433f4e7faa80.css.pnext-asset.js → app/dash/[org]/tasks/list/tasks-list.f3737549b4696cc8.css.pnext-asset.js} +0 -0
  513. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/card.f80288cc42f9bcae.css.pnext-asset.js → app/globals.3b53a3feaa1d72e1.css.pnext-asset.js} +0 -0
  514. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/filter.b53f21acc3e2cfef.css.pnext-asset.js → app/responsive.2979ffa0161a5afd.css.pnext-asset.js} +0 -0
  515. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/{ui/menu.25b184f68cba7b46.css.pnext-asset.js → frame/task-toasts.682322f6f729b33e.css.pnext-asset.js} +0 -0
  516. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.19e1ce5224a23acf.css.pnext-asset.js → badge.8e2a9842b28f44a6.css.pnext-asset.js} +0 -0
package/docs/sdk.md CHANGED
@@ -1,74 +1,61 @@
1
+ ---
2
+ description: The @wular/coder SDK, every CLI command as a typed function.
3
+ ---
4
+
1
5
  # SDK
2
6
 
3
- Everything the CLI does, as a library. The SDK mirrors the CLI exactly: every command group is a namespace, every subcommand a function, with the same names and the same options (`coder --help` is the reference for both). TypeScript users install `zod` alongside it for the schema types.
7
+ The SDK is the CLI as a library: the same commands, names and options. `coder --help` is the reference for both.
8
+
9
+ ## Rules
10
+
11
+ - **Names.** A command group is a namespace and a subcommand a function: `coder task steer` is `task.steer`, `coder model alias` is `model.alias`. Top-level commands are functions: `setupHost`, `upgrade`, `docs`. Exceptions:
12
+ - `task watch` is `task.stream`, an async iterable of progress events.
13
+ - `connection rm` is `connection.remove`.
14
+ - `review` is `review.run`.
15
+ - `server rotate-key` is `server.rotateKey`.
16
+ - `agent run --task` is `agent.runTask`, for runners, not application code.
17
+ - **Arguments.** Positional arguments come first, in CLI order. Flags become one options object in camelCase: `--max-tasks` is `maxTasks`, `--output-schema` is `outputSchema`.
18
+ - **Models.** `model` takes the same spec as `--model`: `sol`, `sol/low`, `claude/opus` or `codex/gpt-6.1-sol/high`.
19
+ - **Server.** Every command that takes `--server` accepts `{ server: true | url, organization?, token?, yes? }`:
20
+ - `server` falls back to `CODER_SERVER`, then the hosted service.
21
+ - `organization` is the workspace slug and overrides the saved one.
22
+ - Authentication comes from `auth.login()` or `token`.
23
+ - `yes: true` accepts a new server origin in non-interactive code.
24
+ - **Results.** Functions never print and never call `process.exit`. Results are typed values. `task.list` returns one page, `{ items, next? }`; pass `next` back as `cursor`.
25
+ - **Errors.** Failures throw `CoderError`, whose `code` says what went wrong:
26
+ - `'chain-exhausted'`: every engine failed to start. It carries the fallback payload and `fallback.instructions`, and is the CLI's exit code 3.
27
+ - `'approval-pending'`: carries the approval to answer.
28
+ - `'login-failed'`.
29
+ - `'server'`: carries the HTTP `status`.
30
+ - The option errors the CLI reports.
31
+ - **Hosting.** `server.handler(env)` serves Coder on serverless hosts; see [Self-host](self-host.md#deploy).
32
+
33
+ ## Examples
34
+
35
+ A task with a JSON answer, then its result:
4
36
 
5
37
  ```ts
6
38
  import coder from '@wular/coder';
7
- // or pick namespaces: import { task, flow, model, config, auth, agent, server } from '@wular/coder';
8
39
 
9
- const { taskId } = await coder.task.run('Explain this repo', {
10
- model: 'sol',
40
+ const { taskId } = await coder.task.run('List the API routes', {
41
+ model: 'claude/opus',
42
+ outputSchema: { type: 'object', properties: { routes: { type: 'array' } } },
11
43
  });
12
-
13
44
  const res = await coder.task.result(taskId, { wait: true });
14
-
15
- console.log(res.result?.finalMessage);
16
45
  ```
17
46
 
18
- `task.run(prompt, { outputSchema })` takes a JSON Schema for the answer; the CLI takes the same JSON with `coder task run --output-schema '<schema>' "<prompt>"`. The schema is sent to the engine natively (Codex, Claude, custom endpoints) and never written into the stored prompt; only an endpoint that rejects schemas gets it as prompt text. A continuation keeps the task's schema unless given a new one.
19
-
20
- SDK functions never print and never call `process.exit`; results come back as typed values and failures as a typed `CoderError` whose `code` says what went wrong. The case the CLI maps to exit code 3 (every engine in the chain failed to start) is `code: 'chain-exhausted'`, carrying the same fallback payload and its self-contained `fallback.instructions`; a task blocked on a permission is `'approval-pending'`, carrying the approval to answer.
21
-
22
- ## CLI to SDK mapping
23
-
24
- | CLI | SDK |
25
- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
26
- | `coder run "<text>"` | `task.run(prompt, opts?)`; `connections` narrows the task's connections |
27
- | `coder list` | `task.list(opts?)` - one page, `{ items, next? }`; pass `next` as `cursor` |
28
- | `coder result [id] [--wait] [--tail N] [--turns]` | `task.result(id?, { wait?, tail? })` - returns `turns` (one entry per finished turn) alongside `result` |
29
- | `coder task steer <id> "<text>"` | `task.steer(id, text, { model?, effort?, permissions?, wait? })` - live, or resumes a finished or archived task on the same id |
30
- | `coder task ask <id> "<question>"` | `task.ask(id, question, { model?, effort? })` - read-only sidecar answer; the task's thread is never touched |
31
- | `coder task stop <id>` | `task.stop(id)` |
32
- | `coder task watch [id] [--tail N]` | `task.stream(id?, { tail? })` - async iterable of progress events |
33
- | `coder task approvals [id]` | `task.approvals(id?)` |
34
- | `coder task approve <id> <appr>` | `task.approve(id, approvalId, { deny? })` |
35
- | `coder task archive / delete <id>` | `task.archive(id)` / `task.delete(id)` |
36
- | `coder flow run / list / discover / result / watch / stop / resume / archive / delete` | the matching `flow.*` function; `flow.run(nameOrPath, { args?, concurrency?, maxTasks? })`, `flow.stream(id?)` for `watch` |
37
- | `coder model add / update / remove / list / alias / unalias / disable / enable` | the matching `model.*` function |
38
- | `coder config get / set` | `config.get(key?)` / `config.set(key, value)` |
39
- | `coder connection add / list / rm / reconnect / approve` | `connection.add(name, { env?, url?, command?, key?, askKey?, header?, access?, me?, credential?, onAuthorize?, server? })` / `connection.list()` / `connection.remove(name)` / `connection.reconnect(name, { key?, askKey?, onAuthorize? })` / `connection.approve(name, { agent? })`, all with `{ server? }` |
40
- | `coder setup-host [hosts...]` | `setupHost(hosts?)` |
41
- | `coder upgrade` | `upgrade({ cliOnly?, pluginsOnly? })` |
42
- | `coder docs [topic]` | `docs(topic?)` |
43
- | `coder review [--base] [--head] [--pr] [--since] [--post]` | `review.run({ base?, head?, pr?, since?, post?, engine?, model?, effort? })` - returns `{ findings, summary, runId }` |
44
- | `coder auth login [--server] [--workspace] [--device] [--yes]` | `auth.login({ server?, organization?, device?, yes?, onCode?, open?, save? })` - the same Wular Auth sign-in; `open` gets the browser URL, `device` switches to the code flow; pass the workspace slug as `organization` when the account has several |
45
- | `coder auth logout / status` | `auth.logout({ server? })` / `auth.status()` - the saved sessions, never their tokens |
46
- | `coder task <verb> --server [url]` | every `task.*` above with `{ server: true \| url, organization?, token?, yes? }` - acts on your server's tasks instead of local tasks |
47
- | `coder agent list / show <id> / init [id] / push [id]` | `agent.list({ server? })` / `agent.show(id, { server? })` / `agent.init(id)` / `agent.push(id?, { cwd?, server? })` |
48
- | `coder agent integrations list / show <id>` | `agent.integrations.list()` / `agent.integrations.show(id)` |
49
- | `coder agent run <agent> <event.json> [--server]` | `agent.run(agent, event, { server?, wait?, flow?, cwd? })` - local, tools off; with `server`, a real task |
50
- | `coder agent run --task <id>` | `agent.runTask(id, options?)` - the runner form, not for application code |
51
- | `coder credentials list / add / remove` | `credentials.list()` / `.add({ env, value?, workspace?, noCheck? })` / `.remove(name, { workspace? })`, all with `{ server? }` |
52
- | `coder agent usage [--since] [--by]` | `agent.usage({ since?, by?, server?, cwd? })` |
53
- | `coder server serve / rotate-key` | `server.serve(options?)` / `server.rotateKey(options?)`; `server.handler(env)` for serverless hosts, see [Self-hosting](self-host.md#deploy) |
54
-
55
- Options objects take the same names as the CLI flags, camelCased (`--max-tasks` becomes `maxTasks`, `--server` becomes `server`). Every server option accepts `organization`, the `--workspace` flag's slug, which overrides the saved workspace for that call. `server` falls back to `CODER_SERVER`, then the hosted service; authentication comes from `auth.login()`, or from `token` when supplied; `yes: true` acknowledges the first use of a new server origin in non-interactive code.
47
+ The schema goes to the engine natively and never into the stored prompt. A continuation keeps it unless given a new one.
56
48
 
57
- ## Examples
58
-
59
- Dispatch a wave and wait for all of it:
49
+ A wave of read-only tasks:
60
50
 
61
- ```js
51
+ ```ts
62
52
  import { task } from '@wular/coder';
63
53
 
64
- const ids = await Promise.all(areas.map(a => task.run(`Audit ${a}`, { permissions: 'read-only' })));
65
-
54
+ const ids = await Promise.all(areas.map(a => task.run(`Audit ${a}`, { access: 'read-only' })));
66
55
  const results = await Promise.all(ids.map(({ taskId }) => task.result(taskId, { wait: true })));
67
56
  ```
68
57
 
69
- Follow a task live. Every event carries a `kind` such as `assistant`, `reasoning`,
70
- `tool`, `tool-result`, `usage`, `status`, `steer`, or `error`, plus the fields
71
- that kind implies (`tool`, `exitCode`, `durationMs`, `tokens`):
58
+ Following a task live. Each event has a `kind`, such as `assistant`, `tool`, `usage` or `error`:
72
59
 
73
60
  ```ts
74
61
  for await (const event of task.stream(taskId)) {
@@ -76,29 +63,18 @@ for await (const event of task.stream(taskId)) {
76
63
  }
77
64
  ```
78
65
 
79
- Run a flow from your own tooling:
66
+ A task on the Coder server:
80
67
 
81
68
  ```ts
82
- import { flow } from '@wular/coder';
83
-
84
- const run = await flow.run('fix-tests', { args: { files } });
85
- console.log(run.result, run.tokens);
69
+ await task.steer(id, 'Also cover the retry path', { server: true });
86
70
  ```
87
71
 
88
- If you need a wave with gates, journaling, and resume, write a [flow](flows.md) instead of hand-rolling it on `task.*`; the flow runtime is exactly this SDK plus those services.
89
-
90
- ## Errors
91
-
92
- `CoderError.code` says what went wrong: `'chain-exhausted'` (every engine failed to start, with the fallback payload and `fallback.instructions`), `'approval-pending'` (the approval to answer), `'login-failed'`, `'server'` (with the HTTP `status` the server answered), and the option errors the CLI reports the same way.
93
-
94
- ## Runners
95
-
96
- `runner.list(options?)` returns `{ items, catalog }`. Each catalog spec describes a kind, its fields and whether this server can offer it. Rows contain a personal or workspace scope, an effective default, presence and non-secret config. Secret fields are sealed in storage and never returned.
72
+ A flow:
97
73
 
98
- Use `runner.add({ kind, name, scope, config }, options?)` to connect an HTTP, GitHub Actions, Vercel Sandbox or local Docker runner. `runner.update(id, { name?, default?, config? }, options?)` updates it, preserving omitted secret fields. `runner.default(id, options?)` makes it the default within its scope. `runner.test(id, options?)` returns `{ ok, detail, ms }` within five seconds, and `runner.remove(id, options?)` removes a record. The built-in server runner cannot be renamed or removed.
99
-
100
- `runner.pair({ name?, scope }, options?)` returns a single-use token valid for 15 minutes and a `coder runner serve --url <server> --token <token>` command. Expose the runner port through a tunnel and set `CODER_RUNNER_URL` to that tunnel's HTTPS address, or add `--runner-url <address>`. The pairing fixes the member and workspace that own the resulting HTTP record. The runner generates and saves its own signing secret, calls home every minute, and marks itself offline on shutdown. Serving without a token still registers through the signed-in member's client.
74
+ ```ts
75
+ import { flow } from '@wular/coder';
101
76
 
102
- Tasks choose a named runner first, then the agent definition's `runner`, the requester's default, the workspace default and the built-in server default. Explicit names must resolve to a visible record or the built-in ID. Local kinds are available only on a local server, and Docker also requires its executable on PATH. Vercel access-token runners use the server's `VERCEL_PROJECT_ID` and, when no team field is provided, `VERCEL_TEAM_ID` for the SDK's project context.
77
+ const run = await flow.run('fix-tests', { args: { files } });
78
+ ```
103
79
 
104
- The matching CLI commands are `coder runner add <kind>`, `list`, `default <id>`, `test <id>` and `remove <id>`. Repeat `--field key=value` when adding a runner. Secret fields use an environment reference such as `--field token=env:GITHUB_TOKEN`. `--scope` accepts `personal` or `workspace`; a workspace record requires an owner or admin. `coder runner add local` prints a pairing command.
80
+ For gates, journaling and resume, write a [flow](flows.md) instead of looping over `task.*`. Runners are in [Runners](runners.md).
package/docs/self-host.md CHANGED
@@ -1,6 +1,10 @@
1
+ ---
2
+ description: Running a Coder server with its database, sign-in, apps and runners.
3
+ ---
4
+
1
5
  # Self-hosting
2
6
 
3
- Run your own instance of the Coder server. A server holds the agents and their platform apps, every task with its output, and the dashboard. Platforms deliver events to it, runners report back to it, and the CLI and SDK reach it with `--server`. The hosted service at `coder.wular.ai` is the default.
7
+ A self-hosted Coder server holds the agents and their platform apps, every task with its output, and the dashboard. Platforms deliver events to it, runners report back to it, and the CLI and SDK reach it with `--server`. The hosted service at `coder.wular.ai` is the default.
4
8
 
5
9
  ## Deploy
6
10
 
@@ -8,42 +12,42 @@ One server, one database, any number of agents, running on Bun. The server is co
8
12
 
9
13
  Required variables carry a *.
10
14
 
11
- | Variable | Type | Default | Purpose |
12
- | ------------------------------------------ | -------------------------------------------------------------------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
13
- | `PUBLIC_URL`<sup><b>*</b></sup> | url without a path | | The address platforms and browsers reach the server at. Written into every app as its webhook and callback address, and the only origin sign-in trusts. Inferred on Vercel; `serve` defaults to `http://localhost:<port>` |
14
- | `DATABASE_URL` or `POSTGRES_URL` | url | | Postgres. Everything lives in a `coder` schema, so the database can be shared with other apps. Run the database setup command below before the first start and after upgrades. Without it `coder server serve` runs the local dashboard; `--memory` selects a throwaway test server. Statements are prepared on each connection, so a query costs one round trip; add `?prepare=false` to the URL for a pooler that cannot keep prepared statements |
15
- | `SERVER_ENCRYPTION_KEY`<sup><b>*</b></sup> | base64 32 bytes | | Encrypts app keys, tokens, and engine credentials at rest (`openssl rand -base64 32`), and derives the session cookie key and the sign-in client key with HKDF. Required with Postgres |
16
- | `AUTH_WULAR_URL` | url | `https://auth.wular.ai` | Wular Auth OpenID issuer, the only identity provider, including for a self-hosted Wular Auth deployment |
17
- | `RUNNER` | `local`\| `local-docker` \| `vercel-sandbox` \| `github-actions` \| `http` | `local`, `vercel-sandbox` on Vercel | Where tasks execute. `local` and `local-docker` run them on the server's own machine and work with the memory store, and are refused on Vercel. The other three run them elsewhere and need Postgres. Members' own machines add to this ([Your own machine](#your-own-machine)) |
18
- | `RUNNER_CONFIG` | JSON | `{}` | Options for the chosen runner ([Runners](#runners)). Required for `http` and `github-actions` |
19
- | `SERVER_ENCRYPTION_KEY_PREVIOUS` | base64 32 bytes | | The old key, accepted until `coder server rotate-key` has re-sealed everything. While set, its sign-in key stays published and its session cookies still open, so rotation keeps everyone signed in |
20
- | `PORT` | number | `8787`, or the port of a localhost `PUBLIC_URL` | Listen port |
21
- | `HOST` | address | `127.0.0.1` without a database, else all | Listen address. A local server listens on loopback only ([Modes](#modes)) |
22
- | `ADMIN_TOKEN` | string | minted and printed per run | Local and memory servers. The bearer the CLI and dashboard use, accepted from loopback only. Ignored with Postgres |
23
- | `CODER_CACHE_HOME` | path | OS cache directory for `wular-coder` | Archived tasks, flows and usage |
24
- | `WORK_DIR` | path | `~/.coder/state/global/server-tasks` | Where the local runner keeps each task's work folder: its working directory, or its checkout with a repository. The folder stays across turns and goes with `task delete` |
25
- | `SERVER_NAME` | string | `Coder` | What the dashboard calls this server, in its sidebar server menu |
26
- | `ISSUES_URL` | URL | `https://github.com/muzam1l/coder/issues/new` | Where the dashboard sends bug reports from its Report issue button |
27
- | `SERVER_LIMITS` | JSON | `{}` | Request rates and task slots ([Limits and monitoring](#limits-and-monitoring)) |
28
- | `CLAUDE_SUBSCRIPTIONS` | `1` | off | Offer "Sign in with Claude" for personal credentials |
29
- | `CODEX_SUBSCRIPTIONS` | `1` | off | Offer "Sign in with Codex" for personal credentials |
30
- | `MAX_TASKS` | number | unset | Optional deployment-wide runner slot cap, in addition to `limits.concurrentTasks` |
31
- | `MAX_QUEUED` | number | `1000` | Tasks a workspace may have waiting |
32
- | `TASK_TIMEOUT` | ms | `1800000` (30 minutes) | Longest a task may run |
33
- | `TASK_STALL` | ms | `300000` (5 minutes) | Silence before the runner is asked whether the task is still alive |
34
- | `TASK_ATTEMPTS` | number | `2` | Times a runner start is retried |
35
- | `SERVER_INTEGRATIONS` | comma-separated ids | every platform | The platforms this server offers, from `github`, `slack` and `linear`. Others get no webhook, catalog entry or app creation. An unknown id stops the server |
36
- | `SERVER_OPERATORS` | comma-separated Wular Auth user ids | none | Postgres servers. Who may open the operator area. Only this variable grants it |
15
+ | Variable | Type | Default | Purpose |
16
+ | --- | --- | --- | --- |
17
+ | `PUBLIC_URL`<sup><b>*</b></sup> | url without a path | | The address platforms and browsers reach the server at. Written into every app as its webhook and callback address, and the only origin sign-in trusts. Inferred on Vercel; `serve` defaults to `http://localhost:<port>` |
18
+ | `DATABASE_URL` or `POSTGRES_URL` | url | | Postgres. Everything lives in a `coder` schema, so the database can be shared with other apps. Run the database setup command below before the first start and after upgrades. Without it `coder server serve` runs the local dashboard; `--memory` selects a throwaway test server. Statements are prepared on each connection, so a query costs one round trip; add `?prepare=false` to the URL for a pooler that cannot keep prepared statements |
19
+ | `SERVER_ENCRYPTION_KEY`<sup><b>*</b></sup> | base64 32 bytes | | Encrypts app keys, tokens, and engine credentials at rest (`openssl rand -base64 32`), and derives the session cookie key and the sign-in client key with HKDF. Required with Postgres |
20
+ | `AUTH_WULAR_URL` | url | `https://auth.wular.ai` | Wular Auth OpenID issuer, the only identity provider, including for a self-hosted Wular Auth deployment |
21
+ | `RUNNER` | `local` \| `local-docker` \| `vercel-sandbox` \| `github-actions` \| `http` | `local`, `vercel-sandbox` on Vercel | Where tasks execute. `local` and `local-docker` run them on the server's own machine and work with the memory store, and are refused on Vercel. The other three run them elsewhere and need Postgres. Members' own machines add to this ([Runners](runners.md)) |
22
+ | `RUNNER_CONFIG` | JSON | `{}` | Options for the chosen runner ([Runners](#runners)). Required for `http` and `github-actions` |
23
+ | `SERVER_ENCRYPTION_KEY_PREVIOUS` | base64 32 bytes | | The old key, accepted until `coder server rotate-key` has re-sealed everything. While set, its sign-in key stays published and its session cookies still open, so rotation keeps everyone signed in |
24
+ | `PORT` | number | `8787`, or the port of a localhost `PUBLIC_URL` | Listen port |
25
+ | `HOST` | address | `127.0.0.1` without a database, else all | Listen address. A local server listens on loopback only ([Modes](#modes)) |
26
+ | `ADMIN_TOKEN` | string | minted and printed per run | Local and memory servers. The bearer the CLI and dashboard use, accepted from loopback only. Ignored with Postgres |
27
+ | `CODER_CACHE_HOME` | path | OS cache directory for `wular-coder` | Archived tasks, flows and usage |
28
+ | `WORK_DIR` | path | `~/.coder/state/global/server-tasks` | Where the local runner keeps each task's work folder: its working directory, or its checkout with a repository. The folder stays across turns and goes with `task delete` |
29
+ | `SERVER_NAME` | string | `Coder` | What the dashboard calls this server, in its sidebar server menu |
30
+ | `ISSUES_URL` | URL | `https://github.com/muzam1l/coder/issues/new` | Where the dashboard sends bug reports from its Report issue button |
31
+ | `SERVER_LIMITS` | JSON | `{}` | Request rates and task slots ([Limits and monitoring](#limits-and-monitoring)) |
32
+ | `CLAUDE_SUBSCRIPTIONS` | `1` | off | Offer **[Sign in with Claude]** for personal credentials |
33
+ | `CODEX_SUBSCRIPTIONS` | `1` | off | Offer **[Sign in with Codex]** for personal credentials |
34
+ | `MAX_TASKS` | number | unset | Optional deployment-wide runner slot cap, in addition to `limits.concurrentTasks` |
35
+ | `MAX_QUEUED` | number | `1000` | Tasks a workspace may have waiting |
36
+ | `TASK_TIMEOUT` | ms | `1800000` (30 minutes) | Longest a task may run |
37
+ | `TASK_STALL` | ms | `300000` (5 minutes) | Silence before the runner is asked whether the task is still alive |
38
+ | `TASK_ATTEMPTS` | number | `2` | Times a runner start is retried |
39
+ | `SERVER_INTEGRATIONS` | comma-separated ids | every platform | The platforms this server offers, from `github`, `slack` and `linear`. Others get no webhook, catalog entry or app creation. An unknown id stops the server |
40
+ | `SERVER_OPERATORS` | comma-separated Wular Auth user ids | none | Postgres servers. Who may open the operator area. Only this variable grants it |
37
41
 
38
42
  Settings, sign-in, pairings and live tasks live in ~/.coder (CODER_HOME). Archived tasks, flows and usage live in the OS cache directory, ~/Library/Caches/wular-coder on macOS, ~/.cache/wular-coder on Linux (CODER_CACHE_HOME overrides). Nothing is ever pruned.
39
43
 
40
44
  ### Modes
41
45
 
42
- | Started with | Mode |
43
- | -------------- | -------------------------------------------------------------------------------------- |
44
- | `DATABASE_URL` | Cloud: sign-in with Wular Auth, workspaces, Postgres |
45
- | `--memory` | Test server: everything in memory, the admin token, and a "not for production" warning |
46
- | neither | Local: the [dashboard](dash.md) for this machine's CLI, on loopback only |
46
+ | Started with | Mode |
47
+ | --- | --- |
48
+ | `DATABASE_URL` | Cloud: sign-in with Wular Auth, workspaces, Postgres |
49
+ | `--memory` | Test server: everything in memory, the admin token, and a "not for production" warning |
50
+ | neither | Local: the [dashboard](dash.md) for this machine's CLI, on loopback only |
47
51
 
48
52
  A memory server refuses to start on Vercel. Without a database, a connection from another machine reaches only the platform endpoints (`/hooks/`, `/create/`, `/install/`, `/connect/`), so `--host 0.0.0.0` lets platforms reach a memory server directly while the dashboard and `/admin` stay on this machine.
49
53
 
@@ -74,7 +78,7 @@ Completed tasks, their logs and usage remain until a task is explicitly deleted.
74
78
 
75
79
  Before the first start and each upgrade, set `DATABASE_URL` and run `npx --yes --package=drizzle-kit@0.31.11 --package=drizzle-orm@0.45.2 --package=postgres@3.4.9 drizzle-kit push --config=./node_modules/@wular/coder/dist/schema.config.js` from the directory where Coder is installed. Run it as a deploy step for serverless hosts.
76
80
 
77
- ### Your own host
81
+ ### A plain host
78
82
 
79
83
  Install Bun and `@wular/coder`, set the variables above, set up the database as above, then run `coder server serve`. The command starts the server under Bun, listens on `PORT` (default 8787), and answers `/health`. Keep it alive with whatever supervises processes on that host. It listens on every interface, as containers and load balancers need; behind a proxy on the same machine, `--host 127.0.0.1` keeps it private. From code, `server.serve()` and `server.rotateKey()` do the same.
80
84
 
@@ -84,13 +88,13 @@ Open `PUBLIC_URL` and sign in with Wular Auth. Workspaces and roles come from Wu
84
88
 
85
89
  Add an engine [credential](#credentials), or the first task will only reply with a link asking for one.
86
90
 
87
- Create the built-in agent's apps once per server with `coder server app create <integration>`, such as `github` or `linear`, run where the server's `DATABASE_URL` and `PUBLIC_URL` are set. Each opens a one-time page that posts the app's manifest to the platform; `--org <org>` creates the GitHub App under an organization you admin. These apps are public and shared by every workspace, and the app's credentials go straight to the server. Linear apps need public distribution turned on before other workspaces can add them.
91
+ Create the built-in agent's apps once per server with `coder server app create <integration>`, such as `github` or `linear`, run where the server's `DATABASE_URL` and `PUBLIC_URL` are set. Each opens a one-time page that posts the app's manifest to the platform; `--org <org>` creates the GitHub App under an organization the caller administers. These apps are public and shared by every workspace, and the app's credentials go straight to the server. Linear apps need public distribution turned on before other workspaces can add them.
88
92
 
89
93
  ## Apps and installs
90
94
 
91
- An agent's handle on a platform is its app. The built-in agent `coder` uses shared apps on GitHub and Linear; create its Slack app in your workspace from its Platforms tab by pasting a Slack configuration refresh token. A custom agent gets its own app from its Platforms tab in the dashboard, under your own GitHub account or an organization whose apps you manage. Private apps install only on their owner; an app made public on its platform installs on any account.
95
+ An agent's handle on a platform is its app. The built-in agent `coder` uses shared apps on GitHub and Linear; create its Slack app in the Slack workspace from **# Agents → coder → (Platforms)** by pasting a Slack configuration refresh token. A custom agent gets its own app from **# Agents → *agent* → (Platforms)** in the dashboard, under the member's own GitHub account or an organization whose apps they manage. Private apps install only on their owner; an app made public on its platform installs on any account.
92
96
 
93
- Installs start from the dashboard. "Connect GitHub" adds the shared GitHub app, and the Platforms tab creates or installs an agent's workspace app. The server binds an install to the workspace that started it with a one-time, expiring state. On GitHub it also requires the installer to authorize the app and checks that the installation appears in their own `GET /user/installations`; on Slack it uses "Add to Slack" OAuth keyed by team. An install started on GitHub asks the installer to sign in and binds only if they are a member of the app's workspace. An install belongs to exactly one workspace, and webhooks route by installation. Removing or suspending an install on the platform stops it.
97
+ Installs start from the dashboard. **[Connect GitHub]** adds the shared GitHub app, and **# Agents → *agent* → (Platforms)** creates or installs an agent's workspace app. The server binds an install to the workspace that started it with a one-time, expiring state. On GitHub it also requires the installer to authorize the app and checks that the installation appears in their own `GET /user/installations`; on Slack it uses **[Add to Slack]** OAuth keyed by team. An install started on GitHub asks the installer to sign in and binds only if they are a member of the app's workspace. An install belongs to exactly one workspace, and webhooks route by installation. Removing or suspending an install on the platform stops it.
94
98
 
95
99
  Operators set up the shared apps in the dashboard's Operator area at `/dash/<workspace>/operator`, one per platform, named `SERVER_NAME` or Wular unless they pick a name, and every operator action lands in its audit log. Entering it asks for a fresh Wular Auth sign-in and lasts an hour, or 15 minutes without activity; on local and memory servers the admin token holder is the operator.
96
100
 
@@ -102,7 +106,7 @@ Credentials are subscriptions and API keys. A subscription is a member's own Cla
102
106
 
103
107
  Each engine uses its subscription, else its key (`ANTHROPIC_API_KEY` for Claude, `OPENAI_API_KEY` for Codex), the requester's own before the workspace's; a custom model uses the variable it names. Tasks with no known requester use the workspace's only, and without a credential the agent replies with a link to the Credentials page.
104
108
 
105
- From a terminal, `coder credentials` adds, lists, removes and signs in credentials; it reads secrets from the environment or stdin and never prints them.
109
+ Manage them under **# Settings → (Credentials)** or with `coder credentials add`, `list`, `login` and `remove`, which read secrets from the environment or stdin and never print them.
106
110
 
107
111
  ## Tasks
108
112
 
@@ -110,42 +114,46 @@ A task starts from the dashboard, `coder task run --server`, or a platform event
110
114
 
111
115
  A task is a conversation: steer it or ask it a question while it runs, and continue it once it has finished. Its output streams over Server-Sent Events, and a repo task's result includes the diff of its changes. The CLI's task commands take `--server` to do the same as the dashboard. A repo's own `.coder/config.json` can only narrow the workspace's config.
112
116
 
117
+ Only the requester of a 1:1 DM task and the workspace's owners and admins see it, in the dashboard, CLI, SDK and API. Its requester steers it, and admins can view, stop and delete it. When the requester hasn't connected that platform account, only admins see it.
118
+
113
119
  ## Sign-in and workspaces
114
120
 
115
121
  Wular Auth is the only identity provider. Coder is an OpenID Connect client with no accounts of its own and signs its requests with a key derived from `SERVER_ENCRYPTION_KEY`, so there is no client secret to register. Sessions refresh themselves as Wular Auth's tokens expire, and signing out also ends the Wular Auth session.
116
122
 
117
- Workspaces come from Wular Auth, where members and roles are managed; the members page links there. Wular Auth sends an account in no workspace through its onboarding before it signs them in to Coder. Apps, installations, tasks, and credentials all belong to the selected workspace. Every member may see and use everything in the workspace; only owners and admins change workspace credentials.
123
+ Workspaces come from Wular Auth, where members and roles are managed; the members page links there. Wular Auth sends an account in no workspace through its onboarding before it signs them in to Coder. Apps, installations, tasks, and credentials all belong to the selected workspace. Every member may see and use everything in the workspace except another member's [DM tasks](#tasks); only owners and admins change workspace credentials.
118
124
 
119
125
  From a terminal, `coder auth login` signs in with Wular Auth (`--device` shows a code to approve elsewhere) and keeps the session in `~/.coder/session.json`. Its tokens are issued for this server only. `--workspace <slug>` picks a workspace and `--server <url>` another instance. Servers must use HTTPS unless they are loopback, and the CLI confirms a new origin the first time it sees it (`--yes` acknowledges it in scripts).
120
126
 
121
- A platform user who addresses an agent must be linked to a member of the workspace that owns the install, or trusted by the platform there, such as a GitHub user with write access to the repository; trusted users get the workspace's connections only. Anyone else gets a link the first time they ask: on Slack a private one-time link, on GitHub a link that signs them in with the app's own GitHub authorization, so no secret appears in a public comment. Write actions on GitHub also need the person's write access to the repository, checked with GitHub. Installing an app links the installer the same way. A trigger with `"actAs": "requester"` runs its tasks with the requester's own GitHub token, kept encrypted and refreshed.
127
+ Anyone the platform lets write where they ask, such as a GitHub user with write access to the repository, starts and steers tasks. Installing an app connects the installer.
122
128
 
123
129
  ## Runners
124
130
 
131
+ What members and admins do with runners, such as pairing their own machine and choosing defaults, is in [Runners](runners.md). This section is the operator's side.
132
+
125
133
  `RUNNER_CONFIG` is a JSON object read by the chosen runner. Every field is optional unless marked.
126
134
 
127
- | Runner | Field | Default | Purpose |
128
- | ---------------- | ------------------- | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
129
- | `local` | | | none |
130
- | `local-docker` | `image` | `ghcr.io/muzam1l/coder-runner:latest` | Image the task runs in |
131
- | | `memory` | `4g` | `--memory` |
132
- | | `cpus` | `2` | `--cpus` |
133
- | | `pidsLimit` | `512` | `--pids-limit` |
134
- | | `network` | `bridge` | `--network` |
135
- | `vercel-sandbox` | `image` | the SDK's default image | Image the task starts from |
136
- | | `token` | deployment OIDC | Vercel access token for Sandbox; install `@vercel/sandbox` in the adapter app |
137
- | | `team` | `VERCEL_TEAM_ID` | Team ID for access-token authentication |
138
- | | `projectId` | `VERCEL_PROJECT_ID` | Project ID for access-token authentication |
139
- | | `region` | the database's region | Sandbox region; inferred from an AWS region in the database host, else Vercel's default |
140
- | | `timeoutMs` | `1800000` | Sandbox lifetime |
141
- | | `vcpus` | `1` | Sandbox size |
142
- | `github-actions` | `token` (required) | | GitHub token that may dispatch the workflow and read its status |
143
- | | `repo` | the event's repository | `owner/name` holding the workflow |
144
- | | `workflow` | `coder-agent.yml` | Workflow file to dispatch (`coder server workflow` prints it) |
145
- | | `ref` | the repository's default branch | Branch to dispatch on |
146
- | `http` | `url` (required) | | Your controller's base URL; it implements `POST /start`, `POST /messages/<handle>`, `GET /status/<handle>`, `POST /stop/<handle>` |
147
- | | `secret` (required) | | Shared secret that signs every request over body, timestamp, and nonce |
148
- | | `headers` | `{}` | Extra headers sent with every request |
135
+ | Runner | Field | Default | Purpose |
136
+ | --- | --- | --- | --- |
137
+ | `local` | | | none |
138
+ | `local-docker` | `image` | `ghcr.io/muzam1l/coder-runner:latest` | Image the task runs in |
139
+ | | `memory` | `4g` | `--memory` |
140
+ | | `cpus` | `2` | `--cpus` |
141
+ | | `pidsLimit` | `512` | `--pids-limit` |
142
+ | | `network` | `bridge` | `--network` |
143
+ | `vercel-sandbox` | `image` | the SDK's default image | Image the task starts from |
144
+ | | `token` | deployment OIDC | Vercel access token for Sandbox; install `@vercel/sandbox` in the adapter app |
145
+ | | `team` | `VERCEL_TEAM_ID` | Team ID for access-token authentication |
146
+ | | `projectId` | `VERCEL_PROJECT_ID` | Project ID for access-token authentication |
147
+ | | `region` | the database's region | Sandbox region; inferred from an AWS region in the database host, else Vercel's default |
148
+ | | `timeoutMs` | `1800000` | Sandbox lifetime |
149
+ | | `vcpus` | `1` | Sandbox size |
150
+ | `github-actions` | `token` (required) | | GitHub token that may dispatch the workflow and read its status |
151
+ | | `repo` | the event's repository | `owner/name` holding the workflow |
152
+ | | `workflow` | `coder-agent.yml` | Workflow file to dispatch (`coder server workflow` prints it) |
153
+ | | `ref` | the repository's default branch | Branch to dispatch on |
154
+ | `http` | `url` (required) | | The controller's base URL; it implements `POST /start`, `POST /messages/<handle>`, `GET /status/<handle>`, `POST /stop/<handle>` |
155
+ | | `secret` (required) | | Shared secret that signs every request over body, timestamp, and nonce |
156
+ | | `headers` | `{}` | Extra headers sent with every request |
149
157
 
150
158
  `local-docker` and `github-actions` run in the runner image, which holds the engines and tools. A custom `image` needs `node`, `bun`, `git`, `curl`, `tar`, `claude`, `codex` and `github-mcp-server`.
151
159
 
@@ -153,38 +161,28 @@ A platform user who addresses an agent must be linked to a member of the workspa
153
161
 
154
162
  On `vercel-sandbox` each task uses the universal image's engines without their own sandbox, and its machine stops when the task ends. Repository snapshots hold the checkout and its installed dependencies. The default is 1 CPU and 2 GB memory; `vcpus` selects a larger machine.
155
163
 
156
- Access-token authentication needs a token, team ID and project ID. Settings → Runners accepts the IDs directly, or the adapter app can supply `VERCEL_TEAM_ID` and `VERCEL_PROJECT_ID`. The firewall injects engine API keys into provider requests, and the task sees a placeholder. Below `auto`, a task's machine reaches only this server, its engine, integrations, connections, MCP servers and `allowedNetworkHosts`.
164
+ Access-token authentication needs a token, team ID and project ID. **# Settings → (Runners)** accepts the IDs directly, or the adapter app can supply `VERCEL_TEAM_ID` and `VERCEL_PROJECT_ID`. The firewall injects engine API keys into provider requests, and the task sees a placeholder. Below `auto`, a task's machine reaches only this server, its engine, integrations, connections, MCP servers and `network.allowedHosts`.
157
165
 
158
166
  For GitHub Actions, save the output of `coder server workflow` as `.github/workflows/coder-agent.yml` on the workflow repository's default branch. Save it again after each Coder upgrade. It accepts `task`, `server`, `token`, `mode` and `tarball`, names each run `Coder agent <task ID>`, and runs the task in the runner image with the callback URL and attempt token in the environment. The workflow token needs repository Actions read and write; a classic token for a private repository needs `repo`. A result returns through the authenticated task callback. No result artifact is required.
159
167
 
160
168
  Every runner sends the task's log to the server while it runs, and the dashboard shows the stored log.
161
169
 
162
- The server stores steer, ask, approval and cancel messages before delivering them. Local workers receive them over a private Unix socket; HTTP controllers use the same signed requests as task starts, Docker uses the daemon's exec channel, and Vercel Sandbox uses `runCommand`. Workers acknowledge the applied sequence and save it across restarts. Unacknowledged messages retry on server events and the sweep, with backoff. A reconnect fetches pending messages once.
163
-
164
- A runner adapter declares delivery support through its optional `push` method. The start environment tells the worker which mode to use. GitHub Actions has no inbound delivery channel, so it checks every four seconds with one indexed query that returns immediately. Four seconds balances interactive response time and request volume. All workers send a separate heartbeat every 30 seconds; idle push workers make no message requests after reconnect.
165
-
166
- ### Your own machine
167
-
168
- A member runs the server's tasks on their own machine with `coder runner serve`. It uses the machine's own `claude` and `codex` logins, so no credential is needed. Expose its port with any tunnel, such as `cloudflared tunnel --url http://localhost:4100`, `ngrok http 4100`, `tailscale funnel 4100` or a public VS Code port, and pass the tunnel's address with `--url`. Each start registers the current address with the server as you (`coder auth login`), and stopping marks the runner offline, so a changing tunnel address is fine. Every request to it is signed with its own secret, kept in `~/.coder/runners.json`. Each task keeps one work folder in `~/.coder/state/global/server-tasks/<task id>/work` across turns; deleting the task removes it at the runner's next registration, within a minute while it runs.
169
-
170
- A runner runs only its owner's tasks. An owner or admin can register one with `--workspace` for every member. A task runs on the runner it names, else its agent's runner, the requester's default, the workspace default, then `RUNNER`. Choose a default with `coder runner default <id>`. `coder runner list`, `rename` and `remove`, and the dashboard's Settings, manage them.
171
-
172
170
  ## Security
173
171
 
174
- The server only verifies, dedupes, and dispatches; agents run in the runner with one checkout, one short-lived platform token, and one engine credential. `permissions` is enforced by the engine sandbox, on `vercel-sandbox` by the machine and its firewall, `tools` by the app's permissions and the MCP allowlist. App credentials are encrypted at rest.
172
+ The server only verifies, dedupes, and dispatches; agents run in the runner with one checkout, one short-lived platform token, and one engine credential. `access` is enforced by the engine sandbox, on `vercel-sandbox` by the machine and its firewall, `tools` by the app's permissions and the MCP allowlist. App credentials are encrypted at rest.
175
173
 
176
174
  ## Limits and monitoring
177
175
 
178
176
  `SERVER_LIMITS` is a JSON object stored under `limits` in the server config. Each value is a positive integer. Unset keys use these defaults.
179
177
 
180
- | Config key | Default | Purpose |
181
- | --------------------------- | ------- | -------------------------------------------------------------------------------------------------------- |
182
- | `limits.principalPerMinute` | `300` | Requests per minute for each signed-in user, the memory server's admin token, or an authenticated runner |
183
- | `limits.ipPerMinute` | `60` | Requests per minute for each unauthenticated IP |
184
- | `limits.authPerMinute` | `20` | Sign-in, token and login requests per minute for each IP, on top of `ipPerMinute` |
185
- | `limits.registerPerMinute` | `10` | Runner registrations per minute for each IP; includes pairing and returning-runner heartbeats |
186
- | `limits.pairingPerMinute` | `5` | Pairing tokens per minute for each principal at `/admin/runners/pair` |
187
- | `limits.concurrentTasks` | `10` | Active task slots per workspace in cloud mode, or per server in local and memory modes |
178
+ | Config key | Default | Purpose |
179
+ | --- | --- | --- |
180
+ | `limits.principalPerMinute` | `300` | Requests per minute for each signed-in user, the memory server's admin token, or an authenticated runner |
181
+ | `limits.ipPerMinute` | `60` | Requests per minute for each unauthenticated IP |
182
+ | `limits.authPerMinute` | `20` | Sign-in, token and login requests per minute for each IP, on top of `ipPerMinute` |
183
+ | `limits.registerPerMinute` | `10` | Runner registrations per minute for each IP; includes pairing and returning-runner heartbeats |
184
+ | `limits.pairingPerMinute` | `5` | Pairing tokens per minute for each principal at `/admin/runners/pair` |
185
+ | `limits.concurrentTasks` | `10` | Active task slots per workspace in cloud mode, or per server in local and memory modes |
188
186
 
189
187
  For example, `SERVER_LIMITS='{"principalPerMinute":300,"ipPerMinute":60,"authPerMinute":20,"registerPerMinute":10,"pairingPerMinute":5,"concurrentTasks":10}'` sets every default explicitly. All `/admin/*`, `/runners/*`, sign-in and pairing requests use the same token-bucket implementation. A bucket starts full and refills continuously over a minute. A refused request returns `429`, a readable JSON `error` and `Retry-After` in seconds. Buckets and counters belong to each server process and reset on restart; serverless instances keep their own buckets.
190
188
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wular/coder",
3
- "version": "0.4.13",
4
- "description": "Delegating coding-agent runtime",
3
+ "version": "0.5.0",
4
+ "description": "The runtime for agents, your rules, any model, everywhere.",
5
5
  "type": "module",
6
6
  "main": "./dist/sdk.js",
7
7
  "types": "./dist/sdk.d.ts",
@@ -34,7 +34,7 @@
34
34
  "version-bump:patch": "node scripts/bump.mjs patch",
35
35
  "version-bump:minor": "node scripts/bump.mjs minor",
36
36
  "version-bump:major": "node scripts/bump.mjs major",
37
- "format": "prettier --write \"src/**/*.{ts,tsx}\" \"scripts/**/*.ts\" \"*.md\" \"docs/**/*.md\""
37
+ "format": "prettier --write \"src/**/*.{ts,tsx}\" \"scripts/**/*.ts\" \"*.md\""
38
38
  },
39
39
  "files": [
40
40
  "bin",
@@ -70,14 +70,13 @@
70
70
  "@types/node": "^26.1.2",
71
71
  "@wular/pnext": "0.1.9",
72
72
  "chat": "4.41.1",
73
- "contextjsx": "0.2.3",
73
+ "contextjsx": "0.2.6",
74
74
  "drizzle-kit": "0.31.11",
75
75
  "drizzle-orm": "0.45.2",
76
76
  "jose": "6.2.12",
77
77
  "openid-client": "6.8.8",
78
78
  "postgres": "3.4.9",
79
79
  "preact": "10.29.2",
80
- "preact-render-to-string": "6.7.0",
81
80
  "prettier": "^3.6.2",
82
81
  "tsdown": "^0.22.13",
83
82
  "typescript": "^5.9.3",
@@ -13,7 +13,7 @@ You dispatch coding tasks through the `coder` runtime instead of implementing th
13
13
 
14
14
  ## Overview
15
15
 
16
- Coder delegates coding to supervised subagents of any model - Codex, Claude, or any OpenAI-compatible or local endpoint - from one runtime on every host. Implementation details live in the subagents, so your context stays clean and handoffs are instant. Every task runs sandboxed under unified permissions (read-only, workspace-write, auto), is steerable mid-run, and falls back down the configured chain when an engine cannot start.
16
+ Coder delegates coding to supervised subagents of any model - Codex, Claude, or any OpenAI-compatible or local endpoint - from one runtime on every host. Implementation details live in the subagents, so your context stays clean and handoffs are instant. Every task runs sandboxed under one access setting (read-only or auto), is steerable mid-run, and falls back down the configured chain when an engine cannot start.
17
17
 
18
18
  ## Setup
19
19
 
@@ -21,7 +21,7 @@ If `coder` is not on PATH, install it yourself without asking: `npm install -g @
21
21
 
22
22
  ## Use Coder over MCP
23
23
 
24
- Each coder command is also an MCP tool with the same arguments, such as `task/run` or `flow/run`; `load_skill` loads a guide.
24
+ Each coder command is also an MCP tool with the same arguments, such as `task/run` or `flow/run`; `load_skill` loads a doc.
25
25
 
26
26
  Setup: `coder setup-host` adds the server. By hand:
27
27
 
@@ -35,7 +35,7 @@ Restart running sessions after adding it.
35
35
  ## Using the CLI
36
36
 
37
37
  - The CLI is the reference. `coder --help` and every subcommand's `--help` list the flags and exit codes, and each command prints the recommended next step when it returns. Follow it.
38
- - `coder docs` lists the deeper guides; `coder docs <topic>` prints one.
38
+ - `coder docs` lists the docs; `coder docs <topic>` prints one.
39
39
  - Wait on each task with `coder task result <task-id> --wait` in its own background shell, one per task, never several tasks in one call, so each approval and answer reaches you.
40
40
  - If your harness sandboxes or gates terminal commands (Codex does both), run every `coder` command with escalated permissions; the runtime is a supervisor with its own sandbox and approval policy.
41
41
 
@@ -13,7 +13,7 @@ You dispatch coding tasks through the `coder` runtime instead of implementing th
13
13
 
14
14
  ## Overview
15
15
 
16
- Coder delegates coding to supervised subagents of any model - Codex, Claude, or any OpenAI-compatible or local endpoint - from one runtime on every host. Implementation details live in the subagents, so your context stays clean and handoffs are instant. Every task runs sandboxed under unified permissions (read-only, workspace-write, auto), is steerable mid-run, and falls back down the configured chain when an engine cannot start.
16
+ Coder delegates coding to supervised subagents of any model - Codex, Claude, or any OpenAI-compatible or local endpoint - from one runtime on every host. Implementation details live in the subagents, so your context stays clean and handoffs are instant. Every task runs sandboxed under one access setting (read-only or auto), is steerable mid-run, and falls back down the configured chain when an engine cannot start.
17
17
 
18
18
  ## Setup
19
19
 
@@ -21,7 +21,7 @@ If `coder` is not on PATH, install it yourself without asking: `npm install -g @
21
21
 
22
22
  ## Use Coder over MCP
23
23
 
24
- Each coder command is also an MCP tool with the same arguments, such as `task/run` or `flow/run`; `load_skill` loads a guide.
24
+ Each coder command is also an MCP tool with the same arguments, such as `task/run` or `flow/run`; `load_skill` loads a doc.
25
25
 
26
26
  Setup: `coder setup-host` adds the server. By hand:
27
27
 
@@ -35,7 +35,7 @@ Restart running sessions after adding it.
35
35
  ## Using the CLI
36
36
 
37
37
  - The CLI is the reference. `coder --help` and every subcommand's `--help` list the flags and exit codes, and each command prints the recommended next step when it returns. Follow it.
38
- - `coder docs` lists the deeper guides; `coder docs <topic>` prints one.
38
+ - `coder docs` lists the docs; `coder docs <topic>` prints one.
39
39
  - Run each `coder task result <task-id> --wait` as its own background Bash call (run_in_background), one per task, never several tasks in one call, so each approval and answer re-invokes you.
40
40
 
41
41
  ## Running tasks
@@ -13,7 +13,7 @@
13
13
  - **Clean context.** Your conversation stays about intent and orchestration; implementation details live in the subagents.
14
14
  - **Fast dispatch.** Handoffs are instant, and light enough to spin up a large number of subagents at once.
15
15
  - **Steerable tasks.** Full visibility into every task, from live progress to mid-run course corrections.
16
- - **Unified permissions.** Three modes across all engines: _Read-only_, _Workspace-write_, and _Auto_.
16
+ - **One access setting.** _Auto_ or _Read-only_, the same on every engine.
17
17
 
18
18
  ## Get started
19
19
 
@@ -58,8 +58,8 @@ Machine defaults live in `~/.coder/config.json`; a `coder.config.json` in a repo
58
58
  {
59
59
  "chain": ["codex", "claude"],
60
60
  "engines": {
61
- "codex": { "model": "sol", "effort": "high", "permissions": "auto" },
62
- "claude": { "model": "opus", "effort": "medium", "permissions": "auto" }
61
+ "codex": { "model": "sol", "effort": "high" },
62
+ "claude": { "model": "opus", "effort": "medium" }
63
63
  },
64
64
  "models": {
65
65
  "qwen": { "baseUrl": "http://localhost:11434/v1", "model": "qwen2.5-coder:32b" }