@guuey/create-agentic-app 0.8.1 → 0.10.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 (316) hide show
  1. package/README.md +22 -2
  2. package/dist/{chunk-JD4RAKEG.js → chunk-5V2IFXD4.js} +96 -21
  3. package/dist/cli.cjs +145 -17
  4. package/dist/cli.js +60 -5
  5. package/dist/index.cjs +97 -21
  6. package/dist/index.d.cts +33 -2
  7. package/dist/index.d.ts +33 -2
  8. package/dist/index.js +3 -1
  9. package/dist/templates/{openai-agents-sdk → agentic-app/claude-agent-sdk}/AGENTS.md +2 -2
  10. package/dist/templates/{openai-agents-sdk → agentic-app/claude-agent-sdk}/README.md +17 -3
  11. package/dist/templates/agentic-app/claude-agent-sdk/gitignore +5 -0
  12. package/dist/templates/agentic-app/claude-agent-sdk/guuey.app.json +28 -0
  13. package/dist/templates/agentic-app/claude-agent-sdk/guuey.app.schema.json +119 -0
  14. package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/package.json +6 -3
  15. package/dist/templates/agentic-app/claude-agent-sdk/scripts/bootstrap.mjs +376 -0
  16. package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/web/index.html +0 -1
  17. package/dist/templates/agentic-app/claude-agent-sdk/web/package.json +28 -0
  18. package/dist/templates/agentic-app/claude-agent-sdk/web/src/components/AgentChat.tsx +53 -0
  19. package/dist/templates/agentic-app/claude-agent-sdk/web/src/components/AppShell.tsx +65 -0
  20. package/dist/templates/agentic-app/claude-agent-sdk/web/src/components/BootstrapGate.tsx +30 -0
  21. package/dist/templates/agentic-app/claude-agent-sdk/web/src/components/Shell.tsx +50 -0
  22. package/dist/templates/agentic-app/claude-agent-sdk/web/src/config.ts +148 -0
  23. package/dist/templates/agentic-app/claude-agent-sdk/web/src/lib/identity.ts +67 -0
  24. package/dist/templates/agentic-app/claude-agent-sdk/web/src/lib/oidc.ts +79 -0
  25. package/dist/templates/agentic-app/claude-agent-sdk/web/src/lib/status.ts +45 -0
  26. package/dist/templates/agentic-app/claude-agent-sdk/web/src/lib/widget.ts +96 -0
  27. package/dist/templates/agentic-app/claude-agent-sdk/web/src/main.tsx +52 -0
  28. package/dist/templates/agentic-app/claude-agent-sdk/web/src/pages/AgentCanvas.tsx +14 -0
  29. package/dist/templates/agentic-app/claude-agent-sdk/web/src/pages/Dashboard.tsx +36 -0
  30. package/dist/templates/agentic-app/claude-agent-sdk/web/src/pages/Home.tsx +133 -0
  31. package/dist/templates/agentic-app/claude-agent-sdk/web/src/pages/Landing.tsx +50 -0
  32. package/dist/templates/agentic-app/claude-agent-sdk/web/src/pages/Login.tsx +81 -0
  33. package/dist/templates/agentic-app/claude-agent-sdk/web/src/pages/Reports.tsx +9 -0
  34. package/dist/templates/agentic-app/claude-agent-sdk/web/src/pages/TalkOnMobile.tsx +50 -0
  35. package/dist/templates/agentic-app/claude-agent-sdk/web/src/routes.ts +7 -0
  36. package/dist/templates/agentic-app/claude-agent-sdk/web/src/styles-app.css +132 -0
  37. package/dist/templates/agentic-app/claude-agent-sdk/web/src/styles.css +248 -0
  38. package/dist/templates/agentic-app/claude-agent-sdk/web/src/vite-env.d.ts +1 -0
  39. package/dist/templates/agentic-app/claude-agent-sdk/web/tsconfig.json +18 -0
  40. package/dist/templates/agentic-app/claude-agent-sdk/web/vite.config.ts +46 -0
  41. package/dist/templates/{google-adk → agentic-app/google-adk}/AGENTS.md +2 -2
  42. package/dist/templates/agentic-app/google-adk/gitignore +5 -0
  43. package/dist/templates/agentic-app/google-adk/guuey.app.json +28 -0
  44. package/dist/templates/agentic-app/google-adk/guuey.app.schema.json +119 -0
  45. package/dist/templates/{google-adk → agentic-app/google-adk}/package.json +6 -3
  46. package/dist/templates/agentic-app/google-adk/scripts/bootstrap.mjs +376 -0
  47. package/dist/templates/{google-adk → agentic-app/google-adk}/web/index.html +0 -1
  48. package/dist/templates/agentic-app/google-adk/web/package.json +28 -0
  49. package/dist/templates/agentic-app/google-adk/web/src/components/AgentChat.tsx +53 -0
  50. package/dist/templates/agentic-app/google-adk/web/src/components/AppShell.tsx +65 -0
  51. package/dist/templates/agentic-app/google-adk/web/src/components/BootstrapGate.tsx +30 -0
  52. package/dist/templates/agentic-app/google-adk/web/src/components/Shell.tsx +50 -0
  53. package/dist/templates/agentic-app/google-adk/web/src/config.ts +148 -0
  54. package/dist/templates/agentic-app/google-adk/web/src/lib/identity.ts +67 -0
  55. package/dist/templates/agentic-app/google-adk/web/src/lib/oidc.ts +79 -0
  56. package/dist/templates/agentic-app/google-adk/web/src/lib/status.ts +45 -0
  57. package/dist/templates/agentic-app/google-adk/web/src/lib/widget.ts +96 -0
  58. package/dist/templates/agentic-app/google-adk/web/src/main.tsx +52 -0
  59. package/dist/templates/agentic-app/google-adk/web/src/pages/AgentCanvas.tsx +14 -0
  60. package/dist/templates/agentic-app/google-adk/web/src/pages/Dashboard.tsx +36 -0
  61. package/dist/templates/agentic-app/google-adk/web/src/pages/Home.tsx +133 -0
  62. package/dist/templates/agentic-app/google-adk/web/src/pages/Landing.tsx +50 -0
  63. package/dist/templates/agentic-app/google-adk/web/src/pages/Login.tsx +81 -0
  64. package/dist/templates/agentic-app/google-adk/web/src/pages/Reports.tsx +9 -0
  65. package/dist/templates/agentic-app/google-adk/web/src/pages/TalkOnMobile.tsx +50 -0
  66. package/dist/templates/agentic-app/google-adk/web/src/routes.ts +7 -0
  67. package/dist/templates/agentic-app/google-adk/web/src/styles-app.css +132 -0
  68. package/dist/templates/agentic-app/google-adk/web/src/styles.css +248 -0
  69. package/dist/templates/agentic-app/google-adk/web/src/vite-env.d.ts +1 -0
  70. package/dist/templates/agentic-app/google-adk/web/tsconfig.json +18 -0
  71. package/dist/templates/agentic-app/google-adk/web/vite.config.ts +46 -0
  72. package/dist/templates/{claude-agent-sdk → agentic-app/openai-agents-sdk}/AGENTS.md +2 -2
  73. package/dist/templates/{claude-agent-sdk → agentic-app/openai-agents-sdk}/README.md +17 -3
  74. package/dist/templates/agentic-app/openai-agents-sdk/gitignore +5 -0
  75. package/dist/templates/agentic-app/openai-agents-sdk/guuey.app.json +28 -0
  76. package/dist/templates/agentic-app/openai-agents-sdk/guuey.app.schema.json +119 -0
  77. package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/package.json +6 -3
  78. package/dist/templates/agentic-app/openai-agents-sdk/scripts/bootstrap.mjs +376 -0
  79. package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/web/index.html +0 -1
  80. package/dist/templates/agentic-app/openai-agents-sdk/web/package.json +28 -0
  81. package/dist/templates/agentic-app/openai-agents-sdk/web/src/components/AgentChat.tsx +53 -0
  82. package/dist/templates/agentic-app/openai-agents-sdk/web/src/components/AppShell.tsx +65 -0
  83. package/dist/templates/agentic-app/openai-agents-sdk/web/src/components/BootstrapGate.tsx +30 -0
  84. package/dist/templates/agentic-app/openai-agents-sdk/web/src/components/Shell.tsx +50 -0
  85. package/dist/templates/agentic-app/openai-agents-sdk/web/src/config.ts +148 -0
  86. package/dist/templates/agentic-app/openai-agents-sdk/web/src/lib/identity.ts +67 -0
  87. package/dist/templates/agentic-app/openai-agents-sdk/web/src/lib/oidc.ts +79 -0
  88. package/dist/templates/agentic-app/openai-agents-sdk/web/src/lib/status.ts +45 -0
  89. package/dist/templates/agentic-app/openai-agents-sdk/web/src/lib/widget.ts +96 -0
  90. package/dist/templates/agentic-app/openai-agents-sdk/web/src/main.tsx +52 -0
  91. package/dist/templates/agentic-app/openai-agents-sdk/web/src/pages/AgentCanvas.tsx +14 -0
  92. package/dist/templates/agentic-app/openai-agents-sdk/web/src/pages/Dashboard.tsx +36 -0
  93. package/dist/templates/agentic-app/openai-agents-sdk/web/src/pages/Home.tsx +133 -0
  94. package/dist/templates/agentic-app/openai-agents-sdk/web/src/pages/Landing.tsx +50 -0
  95. package/dist/templates/agentic-app/openai-agents-sdk/web/src/pages/Login.tsx +81 -0
  96. package/dist/templates/agentic-app/openai-agents-sdk/web/src/pages/Reports.tsx +9 -0
  97. package/dist/templates/agentic-app/openai-agents-sdk/web/src/pages/TalkOnMobile.tsx +50 -0
  98. package/dist/templates/agentic-app/openai-agents-sdk/web/src/routes.ts +7 -0
  99. package/dist/templates/agentic-app/openai-agents-sdk/web/src/styles-app.css +132 -0
  100. package/dist/templates/agentic-app/openai-agents-sdk/web/src/styles.css +248 -0
  101. package/dist/templates/agentic-app/openai-agents-sdk/web/src/vite-env.d.ts +1 -0
  102. package/dist/templates/agentic-app/openai-agents-sdk/web/tsconfig.json +18 -0
  103. package/dist/templates/agentic-app/openai-agents-sdk/web/vite.config.ts +46 -0
  104. package/dist/templates/base/claude-agent-sdk/.env.example +4 -0
  105. package/dist/templates/base/claude-agent-sdk/.mcp.json +1 -0
  106. package/dist/templates/base/claude-agent-sdk/AGENTS.md +135 -0
  107. package/dist/templates/base/claude-agent-sdk/README.md +171 -0
  108. package/dist/templates/base/claude-agent-sdk/ggui/blueprints/.gitkeep +0 -0
  109. package/dist/templates/base/claude-agent-sdk/ggui/ggui.json +15 -0
  110. package/dist/templates/base/claude-agent-sdk/ggui/themes/.gitkeep +0 -0
  111. package/dist/templates/base/claude-agent-sdk/gitignore +5 -0
  112. package/dist/templates/base/claude-agent-sdk/guuey.app.json +28 -0
  113. package/dist/templates/base/claude-agent-sdk/guuey.app.schema.json +119 -0
  114. package/dist/templates/base/claude-agent-sdk/guuey.json +14 -0
  115. package/dist/templates/base/claude-agent-sdk/mcps/todo/Dockerfile +46 -0
  116. package/dist/templates/base/claude-agent-sdk/mcps/todo/package.json +22 -0
  117. package/dist/templates/base/claude-agent-sdk/mcps/todo/src/server.ts +173 -0
  118. package/dist/templates/base/claude-agent-sdk/mcps/todo/tsconfig.json +15 -0
  119. package/dist/templates/base/claude-agent-sdk/mcps/todo/tsup.config.ts +14 -0
  120. package/dist/templates/base/claude-agent-sdk/package.json +30 -0
  121. package/dist/templates/base/claude-agent-sdk/pnpm-workspace.yaml +24 -0
  122. package/dist/templates/base/claude-agent-sdk/prompts/system.md +4 -0
  123. package/dist/templates/base/claude-agent-sdk/scripts/bootstrap.mjs +376 -0
  124. package/dist/templates/base/claude-agent-sdk/scripts/dev.mjs +45 -0
  125. package/dist/templates/base/claude-agent-sdk/src/agent-config.ts +77 -0
  126. package/dist/templates/base/claude-agent-sdk/src/worker.ts +89 -0
  127. package/dist/templates/base/claude-agent-sdk/tsconfig.json +15 -0
  128. package/dist/templates/base/claude-agent-sdk/tsup.config.ts +9 -0
  129. package/dist/templates/base/claude-agent-sdk/web/index.html +12 -0
  130. package/dist/templates/{claude-agent-sdk → base/claude-agent-sdk}/web/package.json +9 -8
  131. package/dist/templates/base/claude-agent-sdk/web/src/components/AgentChat.tsx +53 -0
  132. package/dist/templates/base/claude-agent-sdk/web/src/components/BootstrapGate.tsx +30 -0
  133. package/dist/templates/base/claude-agent-sdk/web/src/components/Shell.tsx +50 -0
  134. package/dist/templates/base/claude-agent-sdk/web/src/config.ts +148 -0
  135. package/dist/templates/base/claude-agent-sdk/web/src/lib/identity.ts +67 -0
  136. package/dist/templates/base/claude-agent-sdk/web/src/lib/oidc.ts +79 -0
  137. package/dist/templates/base/claude-agent-sdk/web/src/lib/status.ts +45 -0
  138. package/dist/templates/base/claude-agent-sdk/web/src/lib/widget.ts +96 -0
  139. package/dist/templates/base/claude-agent-sdk/web/src/main.tsx +38 -0
  140. package/dist/templates/base/claude-agent-sdk/web/src/pages/Chat.tsx +15 -0
  141. package/dist/templates/base/claude-agent-sdk/web/src/pages/Home.tsx +133 -0
  142. package/dist/templates/base/claude-agent-sdk/web/src/pages/Landing.tsx +50 -0
  143. package/dist/templates/base/claude-agent-sdk/web/src/pages/Login.tsx +81 -0
  144. package/dist/templates/base/claude-agent-sdk/web/src/routes.ts +7 -0
  145. package/dist/templates/base/claude-agent-sdk/web/src/styles.css +248 -0
  146. package/dist/templates/base/claude-agent-sdk/web/src/vite-env.d.ts +1 -0
  147. package/dist/templates/base/claude-agent-sdk/web/tsconfig.json +18 -0
  148. package/dist/templates/base/claude-agent-sdk/web/vite.config.ts +46 -0
  149. package/dist/templates/base/google-adk/.env.example +4 -0
  150. package/dist/templates/base/google-adk/.mcp.json +1 -0
  151. package/dist/templates/base/google-adk/AGENTS.md +135 -0
  152. package/dist/templates/base/google-adk/README.md +90 -0
  153. package/dist/templates/base/google-adk/ggui/blueprints/.gitkeep +0 -0
  154. package/dist/templates/base/google-adk/ggui/ggui.json +15 -0
  155. package/dist/templates/base/google-adk/ggui/themes/.gitkeep +0 -0
  156. package/dist/templates/base/google-adk/gitignore +5 -0
  157. package/dist/templates/base/google-adk/guuey.app.json +28 -0
  158. package/dist/templates/base/google-adk/guuey.app.schema.json +119 -0
  159. package/dist/templates/base/google-adk/guuey.json +15 -0
  160. package/dist/templates/base/google-adk/mcps/todo/Dockerfile +46 -0
  161. package/dist/templates/base/google-adk/mcps/todo/package.json +22 -0
  162. package/dist/templates/base/google-adk/mcps/todo/src/server.ts +173 -0
  163. package/dist/templates/base/google-adk/mcps/todo/tsconfig.json +15 -0
  164. package/dist/templates/base/google-adk/mcps/todo/tsup.config.ts +14 -0
  165. package/dist/templates/base/google-adk/package.json +30 -0
  166. package/dist/templates/base/google-adk/pnpm-workspace.yaml +34 -0
  167. package/dist/templates/base/google-adk/prompts/system.md +4 -0
  168. package/dist/templates/base/google-adk/scripts/bootstrap.mjs +376 -0
  169. package/dist/templates/base/google-adk/scripts/dev.mjs +45 -0
  170. package/dist/templates/base/google-adk/src/agent.ts +43 -0
  171. package/dist/templates/base/google-adk/tsconfig.json +15 -0
  172. package/dist/templates/base/google-adk/tsup.config.ts +13 -0
  173. package/dist/templates/base/google-adk/web/index.html +12 -0
  174. package/dist/templates/{google-adk → base/google-adk}/web/package.json +9 -8
  175. package/dist/templates/base/google-adk/web/src/components/AgentChat.tsx +53 -0
  176. package/dist/templates/base/google-adk/web/src/components/BootstrapGate.tsx +30 -0
  177. package/dist/templates/base/google-adk/web/src/components/Shell.tsx +50 -0
  178. package/dist/templates/base/google-adk/web/src/config.ts +148 -0
  179. package/dist/templates/base/google-adk/web/src/lib/identity.ts +67 -0
  180. package/dist/templates/base/google-adk/web/src/lib/oidc.ts +79 -0
  181. package/dist/templates/base/google-adk/web/src/lib/status.ts +45 -0
  182. package/dist/templates/base/google-adk/web/src/lib/widget.ts +96 -0
  183. package/dist/templates/base/google-adk/web/src/main.tsx +38 -0
  184. package/dist/templates/base/google-adk/web/src/pages/Chat.tsx +15 -0
  185. package/dist/templates/base/google-adk/web/src/pages/Home.tsx +133 -0
  186. package/dist/templates/base/google-adk/web/src/pages/Landing.tsx +50 -0
  187. package/dist/templates/base/google-adk/web/src/pages/Login.tsx +81 -0
  188. package/dist/templates/base/google-adk/web/src/routes.ts +7 -0
  189. package/dist/templates/base/google-adk/web/src/styles.css +248 -0
  190. package/dist/templates/base/google-adk/web/src/vite-env.d.ts +1 -0
  191. package/dist/templates/base/google-adk/web/tsconfig.json +18 -0
  192. package/dist/templates/base/google-adk/web/vite.config.ts +46 -0
  193. package/dist/templates/base/openai-agents-sdk/.env.example +4 -0
  194. package/dist/templates/base/openai-agents-sdk/.mcp.json +1 -0
  195. package/dist/templates/base/openai-agents-sdk/AGENTS.md +135 -0
  196. package/dist/templates/base/openai-agents-sdk/README.md +171 -0
  197. package/dist/templates/base/openai-agents-sdk/ggui/blueprints/.gitkeep +0 -0
  198. package/dist/templates/base/openai-agents-sdk/ggui/ggui.json +15 -0
  199. package/dist/templates/base/openai-agents-sdk/ggui/themes/.gitkeep +0 -0
  200. package/dist/templates/base/openai-agents-sdk/gitignore +5 -0
  201. package/dist/templates/base/openai-agents-sdk/guuey.app.json +28 -0
  202. package/dist/templates/base/openai-agents-sdk/guuey.app.schema.json +119 -0
  203. package/dist/templates/base/openai-agents-sdk/guuey.json +27 -0
  204. package/dist/templates/base/openai-agents-sdk/mcps/todo/Dockerfile +46 -0
  205. package/dist/templates/base/openai-agents-sdk/mcps/todo/package.json +22 -0
  206. package/dist/templates/base/openai-agents-sdk/mcps/todo/src/server.ts +173 -0
  207. package/dist/templates/base/openai-agents-sdk/mcps/todo/tsconfig.json +15 -0
  208. package/dist/templates/base/openai-agents-sdk/mcps/todo/tsup.config.ts +14 -0
  209. package/dist/templates/base/openai-agents-sdk/package.json +30 -0
  210. package/dist/templates/base/openai-agents-sdk/pnpm-workspace.yaml +24 -0
  211. package/dist/templates/base/openai-agents-sdk/prompts/system.md +4 -0
  212. package/dist/templates/base/openai-agents-sdk/scripts/bootstrap.mjs +376 -0
  213. package/dist/templates/base/openai-agents-sdk/scripts/dev.mjs +45 -0
  214. package/dist/templates/base/openai-agents-sdk/src/agent-config.ts +77 -0
  215. package/dist/templates/base/openai-agents-sdk/src/worker.ts +75 -0
  216. package/dist/templates/base/openai-agents-sdk/tsconfig.json +15 -0
  217. package/dist/templates/base/openai-agents-sdk/tsup.config.ts +16 -0
  218. package/dist/templates/base/openai-agents-sdk/web/index.html +12 -0
  219. package/dist/templates/{openai-agents-sdk → base/openai-agents-sdk}/web/package.json +9 -8
  220. package/dist/templates/base/openai-agents-sdk/web/src/components/AgentChat.tsx +53 -0
  221. package/dist/templates/base/openai-agents-sdk/web/src/components/BootstrapGate.tsx +30 -0
  222. package/dist/templates/base/openai-agents-sdk/web/src/components/Shell.tsx +50 -0
  223. package/dist/templates/base/openai-agents-sdk/web/src/config.ts +148 -0
  224. package/dist/templates/base/openai-agents-sdk/web/src/lib/identity.ts +67 -0
  225. package/dist/templates/base/openai-agents-sdk/web/src/lib/oidc.ts +79 -0
  226. package/dist/templates/base/openai-agents-sdk/web/src/lib/status.ts +45 -0
  227. package/dist/templates/base/openai-agents-sdk/web/src/lib/widget.ts +96 -0
  228. package/dist/templates/base/openai-agents-sdk/web/src/main.tsx +38 -0
  229. package/dist/templates/base/openai-agents-sdk/web/src/pages/Chat.tsx +15 -0
  230. package/dist/templates/base/openai-agents-sdk/web/src/pages/Home.tsx +133 -0
  231. package/dist/templates/base/openai-agents-sdk/web/src/pages/Landing.tsx +50 -0
  232. package/dist/templates/base/openai-agents-sdk/web/src/pages/Login.tsx +81 -0
  233. package/dist/templates/base/openai-agents-sdk/web/src/routes.ts +7 -0
  234. package/dist/templates/base/openai-agents-sdk/web/src/styles.css +248 -0
  235. package/dist/templates/base/openai-agents-sdk/web/src/vite-env.d.ts +1 -0
  236. package/dist/templates/base/openai-agents-sdk/web/tsconfig.json +18 -0
  237. package/dist/templates/base/openai-agents-sdk/web/vite.config.ts +46 -0
  238. package/package.json +6 -3
  239. package/dist/templates/claude-agent-sdk/web/.env.example +0 -17
  240. package/dist/templates/claude-agent-sdk/web/sandbox-proxy.ts +0 -239
  241. package/dist/templates/claude-agent-sdk/web/src/App.tsx +0 -272
  242. package/dist/templates/claude-agent-sdk/web/src/main.tsx +0 -12
  243. package/dist/templates/claude-agent-sdk/web/src/useAgentChat.ts +0 -122
  244. package/dist/templates/claude-agent-sdk/web/src/vite-env.d.ts +0 -27
  245. package/dist/templates/claude-agent-sdk/web/tsconfig.json +0 -20
  246. package/dist/templates/claude-agent-sdk/web/vite.config.ts +0 -12
  247. package/dist/templates/google-adk/web/.env.example +0 -17
  248. package/dist/templates/google-adk/web/sandbox-proxy.ts +0 -239
  249. package/dist/templates/google-adk/web/src/App.tsx +0 -272
  250. package/dist/templates/google-adk/web/src/main.tsx +0 -12
  251. package/dist/templates/google-adk/web/src/useAgentChat.ts +0 -122
  252. package/dist/templates/google-adk/web/src/vite-env.d.ts +0 -27
  253. package/dist/templates/google-adk/web/tsconfig.json +0 -20
  254. package/dist/templates/google-adk/web/vite.config.ts +0 -12
  255. package/dist/templates/openai-agents-sdk/web/.env.example +0 -17
  256. package/dist/templates/openai-agents-sdk/web/sandbox-proxy.ts +0 -239
  257. package/dist/templates/openai-agents-sdk/web/src/App.tsx +0 -272
  258. package/dist/templates/openai-agents-sdk/web/src/main.tsx +0 -12
  259. package/dist/templates/openai-agents-sdk/web/src/useAgentChat.ts +0 -122
  260. package/dist/templates/openai-agents-sdk/web/src/vite-env.d.ts +0 -27
  261. package/dist/templates/openai-agents-sdk/web/tsconfig.json +0 -20
  262. package/dist/templates/openai-agents-sdk/web/vite.config.ts +0 -12
  263. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/.env.example +0 -0
  264. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/.mcp.json +0 -0
  265. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/ggui/blueprints/.gitkeep +0 -0
  266. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/ggui/ggui.json +0 -0
  267. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/ggui/themes/.gitkeep +0 -0
  268. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/guuey.json +0 -0
  269. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/mcps/todo/Dockerfile +0 -0
  270. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/mcps/todo/package.json +0 -0
  271. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/mcps/todo/src/server.ts +0 -0
  272. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/mcps/todo/tsconfig.json +0 -0
  273. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/mcps/todo/tsup.config.ts +0 -0
  274. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/pnpm-workspace.yaml +0 -0
  275. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/prompts/system.md +0 -0
  276. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/scripts/dev.mjs +0 -0
  277. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/src/agent-config.ts +0 -0
  278. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/src/worker.ts +0 -0
  279. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/tsconfig.json +0 -0
  280. /package/dist/templates/{claude-agent-sdk → agentic-app/claude-agent-sdk}/tsup.config.ts +0 -0
  281. /package/dist/templates/{google-adk → agentic-app/google-adk}/.env.example +0 -0
  282. /package/dist/templates/{google-adk → agentic-app/google-adk}/.mcp.json +0 -0
  283. /package/dist/templates/{google-adk → agentic-app/google-adk}/README.md +0 -0
  284. /package/dist/templates/{google-adk → agentic-app/google-adk}/ggui/blueprints/.gitkeep +0 -0
  285. /package/dist/templates/{google-adk → agentic-app/google-adk}/ggui/ggui.json +0 -0
  286. /package/dist/templates/{google-adk → agentic-app/google-adk}/ggui/themes/.gitkeep +0 -0
  287. /package/dist/templates/{google-adk → agentic-app/google-adk}/guuey.json +0 -0
  288. /package/dist/templates/{google-adk → agentic-app/google-adk}/mcps/todo/Dockerfile +0 -0
  289. /package/dist/templates/{google-adk → agentic-app/google-adk}/mcps/todo/package.json +0 -0
  290. /package/dist/templates/{google-adk → agentic-app/google-adk}/mcps/todo/src/server.ts +0 -0
  291. /package/dist/templates/{google-adk → agentic-app/google-adk}/mcps/todo/tsconfig.json +0 -0
  292. /package/dist/templates/{google-adk → agentic-app/google-adk}/mcps/todo/tsup.config.ts +0 -0
  293. /package/dist/templates/{google-adk → agentic-app/google-adk}/pnpm-workspace.yaml +0 -0
  294. /package/dist/templates/{google-adk → agentic-app/google-adk}/prompts/system.md +0 -0
  295. /package/dist/templates/{google-adk → agentic-app/google-adk}/scripts/dev.mjs +0 -0
  296. /package/dist/templates/{google-adk → agentic-app/google-adk}/src/agent.ts +0 -0
  297. /package/dist/templates/{google-adk → agentic-app/google-adk}/tsconfig.json +0 -0
  298. /package/dist/templates/{google-adk → agentic-app/google-adk}/tsup.config.ts +0 -0
  299. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/.env.example +0 -0
  300. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/.mcp.json +0 -0
  301. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/ggui/blueprints/.gitkeep +0 -0
  302. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/ggui/ggui.json +0 -0
  303. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/ggui/themes/.gitkeep +0 -0
  304. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/guuey.json +0 -0
  305. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/mcps/todo/Dockerfile +0 -0
  306. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/mcps/todo/package.json +0 -0
  307. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/mcps/todo/src/server.ts +0 -0
  308. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/mcps/todo/tsconfig.json +0 -0
  309. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/mcps/todo/tsup.config.ts +0 -0
  310. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/pnpm-workspace.yaml +0 -0
  311. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/prompts/system.md +0 -0
  312. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/scripts/dev.mjs +0 -0
  313. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/src/agent-config.ts +0 -0
  314. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/src/worker.ts +0 -0
  315. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/tsconfig.json +0 -0
  316. /package/dist/templates/{openai-agents-sdk → agentic-app/openai-agents-sdk}/tsup.config.ts +0 -0
@@ -0,0 +1,248 @@
1
+ /* agentic-app-template site styles — one accent, light/dark, no framework. */
2
+
3
+ :root {
4
+ --app-accent: #6c5ce7;
5
+ --bg: #ffffff;
6
+ --bg-soft: #f6f7f9;
7
+ --fg: #16181d;
8
+ --fg-soft: #5b6270;
9
+ --line: #e4e7ec;
10
+ --ok: #1a7f37;
11
+ }
12
+
13
+ :root[data-mode="dark"] {
14
+ --bg: #101216;
15
+ --bg-soft: #181b21;
16
+ --fg: #e8eaee;
17
+ --fg-soft: #9aa2b1;
18
+ --line: #262a33;
19
+ --ok: #3fb950;
20
+ }
21
+
22
+ * {
23
+ box-sizing: border-box;
24
+ }
25
+
26
+ body {
27
+ margin: 0;
28
+ font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
29
+ background: var(--bg);
30
+ color: var(--fg);
31
+ }
32
+
33
+ code,
34
+ pre {
35
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
36
+ font-size: 0.9em;
37
+ }
38
+
39
+ pre {
40
+ background: var(--bg-soft);
41
+ border: 1px solid var(--line);
42
+ border-radius: 8px;
43
+ padding: 12px 14px;
44
+ overflow-x: auto;
45
+ }
46
+
47
+ a {
48
+ color: var(--app-accent);
49
+ }
50
+
51
+ .shell {
52
+ min-height: 100vh;
53
+ display: flex;
54
+ flex-direction: column;
55
+ }
56
+
57
+ .topbar {
58
+ display: flex;
59
+ align-items: center;
60
+ justify-content: space-between;
61
+ padding: 12px 24px;
62
+ border-bottom: 1px solid var(--line);
63
+ }
64
+
65
+ .brand {
66
+ display: flex;
67
+ align-items: center;
68
+ gap: 10px;
69
+ font-weight: 700;
70
+ color: var(--fg);
71
+ text-decoration: none;
72
+ }
73
+
74
+ .brand-mark {
75
+ display: inline-flex;
76
+ align-items: center;
77
+ justify-content: center;
78
+ width: 30px;
79
+ height: 30px;
80
+ border-radius: 8px;
81
+ background: var(--app-accent);
82
+ color: #fff;
83
+ font-size: 13px;
84
+ }
85
+
86
+ .topbar nav {
87
+ display: flex;
88
+ align-items: center;
89
+ gap: 16px;
90
+ }
91
+
92
+ .topbar nav a {
93
+ color: var(--fg-soft);
94
+ text-decoration: none;
95
+ }
96
+
97
+ .topbar nav a.active {
98
+ color: var(--fg);
99
+ font-weight: 600;
100
+ }
101
+
102
+ .btn {
103
+ display: inline-flex;
104
+ align-items: center;
105
+ justify-content: center;
106
+ padding: 8px 16px;
107
+ border-radius: 8px;
108
+ border: 1px solid var(--line);
109
+ background: var(--bg);
110
+ color: var(--fg);
111
+ font-size: 14px;
112
+ cursor: pointer;
113
+ text-decoration: none;
114
+ }
115
+
116
+ .btn:disabled {
117
+ opacity: 0.5;
118
+ cursor: not-allowed;
119
+ }
120
+
121
+ .btn-accent {
122
+ background: var(--app-accent);
123
+ border-color: var(--app-accent);
124
+ color: #fff;
125
+ }
126
+
127
+ .btn-wide {
128
+ width: 100%;
129
+ }
130
+
131
+ .page {
132
+ flex: 1;
133
+ width: 100%;
134
+ max-width: 880px;
135
+ margin: 0 auto;
136
+ padding: 32px 24px;
137
+ }
138
+
139
+ .hero {
140
+ text-align: center;
141
+ padding: 64px 0;
142
+ }
143
+
144
+ .hero h1 {
145
+ font-size: 44px;
146
+ margin: 0 0 12px;
147
+ }
148
+
149
+ .hero p {
150
+ color: var(--fg-soft);
151
+ font-size: 18px;
152
+ margin: 0 0 28px;
153
+ }
154
+
155
+ .hero-actions {
156
+ display: flex;
157
+ gap: 12px;
158
+ justify-content: center;
159
+ }
160
+
161
+ .login {
162
+ display: flex;
163
+ justify-content: center;
164
+ }
165
+
166
+ .login-card,
167
+ .gate-card {
168
+ width: 100%;
169
+ max-width: 380px;
170
+ margin-top: 48px;
171
+ padding: 28px;
172
+ border: 1px solid var(--line);
173
+ border-radius: 12px;
174
+ background: var(--bg-soft);
175
+ display: flex;
176
+ flex-direction: column;
177
+ gap: 12px;
178
+ }
179
+
180
+ .gate {
181
+ min-height: 100vh;
182
+ display: flex;
183
+ justify-content: center;
184
+ background: var(--bg);
185
+ color: var(--fg);
186
+ }
187
+
188
+ .gate-card {
189
+ max-width: 520px;
190
+ }
191
+
192
+ .chat-page {
193
+ display: flex;
194
+ max-width: 880px;
195
+ height: calc(100vh - 61px);
196
+ padding: 16px 24px 24px;
197
+ }
198
+
199
+ .chat-fill {
200
+ flex: 1;
201
+ min-height: 0;
202
+ border: 1px solid var(--line);
203
+ border-radius: 12px;
204
+ overflow: hidden;
205
+ }
206
+
207
+ .card {
208
+ border: 1px solid var(--line);
209
+ border-radius: 12px;
210
+ padding: 20px 24px;
211
+ margin-bottom: 24px;
212
+ background: var(--bg);
213
+ }
214
+
215
+ .facts {
216
+ display: grid;
217
+ grid-template-columns: 140px 1fr;
218
+ gap: 8px 16px;
219
+ margin: 0;
220
+ }
221
+
222
+ .facts dt {
223
+ color: var(--fg-soft);
224
+ }
225
+
226
+ .facts dd {
227
+ margin: 0;
228
+ overflow-wrap: anywhere;
229
+ }
230
+
231
+ .ok {
232
+ color: var(--ok);
233
+ font-weight: 600;
234
+ }
235
+
236
+ .calm {
237
+ color: var(--fg-soft);
238
+ }
239
+
240
+ .hint {
241
+ color: var(--fg-soft);
242
+ font-size: 14px;
243
+ }
244
+
245
+ .error {
246
+ color: #c0392b;
247
+ font-size: 14px;
248
+ }
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -0,0 +1,18 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
5
+ "module": "ESNext",
6
+ "moduleResolution": "bundler",
7
+ "resolveJsonModule": true,
8
+ "esModuleInterop": true,
9
+ "jsx": "react-jsx",
10
+ "strict": true,
11
+ "noUncheckedIndexedAccess": true,
12
+ "noEmit": true,
13
+ "skipLibCheck": true,
14
+ "isolatedModules": true,
15
+ "types": ["vite/client", "node"]
16
+ },
17
+ "include": ["src", "vite.config.ts", "../guuey.app.json"]
18
+ }
@@ -0,0 +1,46 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { join, dirname } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { defineConfig, type Plugin } from "vite";
5
+ import react from "@vitejs/plugin-react";
6
+
7
+ const projectRoot = join(dirname(fileURLToPath(import.meta.url)), "..");
8
+
9
+ /**
10
+ * Fail-loud production gate (never a half-styled deploy): `pnpm bootstrap`
11
+ * not run yet → the BUILD fails with the exact command. An UNLINKED build
12
+ * is allowed — the pages state the missing binding honestly — but gets a
13
+ * loud warning, since a deployed frontend without a bound guuey app has no
14
+ * live agent to talk to.
15
+ *
16
+ * Dev is NOT gated here — `src/components/BootstrapGate.tsx` renders the
17
+ * "run bootstrap first" screen instead, so `pnpm dev` always starts.
18
+ */
19
+ function bootstrapGatePlugin(): Plugin {
20
+ return {
21
+ name: "guuey-bootstrap-gate",
22
+ apply: "build",
23
+ buildStart() {
24
+ const raw = readFileSync(join(projectRoot, "guuey.app.json"), "utf8");
25
+ const app = JSON.parse(raw) as { bootstrapped?: boolean; link?: object | null };
26
+ if (app.bootstrapped !== true) {
27
+ throw new Error(
28
+ "guuey.app.json is not bootstrapped — run `pnpm bootstrap` at the project root first.",
29
+ );
30
+ }
31
+ if (!app.link) {
32
+ console.warn(
33
+ "[guuey-bootstrap-gate] building WITHOUT a bound guuey app — the deployed site will have " +
34
+ "no live agent until you run `pnpm bootstrap -- --link --app-id <appId>` and rebuild.",
35
+ );
36
+ }
37
+ },
38
+ };
39
+ }
40
+
41
+ // Port is passed via the `dev` script's `--port 6890` flag (see package.json)
42
+ // so it stays visible in one place; `scripts/dev.mjs` boots this on the same
43
+ // port.
44
+ export default defineConfig({
45
+ plugins: [react(), bootstrapGatePlugin()],
46
+ });
@@ -4,7 +4,7 @@ You (the coding agent) are extending a guuey agentic app. Before you reach
4
4
  for a database or a cache, read this file. The single most common mistake
5
5
  here is standing up local Redis/SQLite/file-based state "just to get
6
6
  something working" — **don't.** Every pod this project deploys to
7
- (`src/worker.ts`'s agent pod — including every `kind: colocated` `mcps/*`
7
+ (the agent entry's pod — `src/worker.ts`, or `src/agent.ts` in a google-adk scaffold — including every `kind: colocated` `mcps/*`
8
8
  server auto-spawned inside it, like this scaffold's `mcps/todo` — and every
9
9
  `mcps/*` server deployed with `kind: hosted`) is **ephemeral and horizontally
10
10
  replaced**: gVisor-isolated,
@@ -19,7 +19,7 @@ Use this table to route persistence decisions. Pick a row, don't invent one.
19
19
  | Small per-user state on an MCP server (idempotency keys, rate-limit counters, OAuth nonces, prefs, a few KB) | [`@guuey/state`](https://www.npmjs.com/package/@guuey/state) — `withGuueyContext(scopeFromAuthorization(...), fn)` | Zero auth code — guuey owns the identity rails. Durable, per-`(user, mcp)`, survives pod restarts. |
20
20
  | Large or relational data (rows, queries, joins, anything you'd reach for Postgres/Redis for) | An external managed serverless DB — Neon, Upstash, Supabase, or Turso — wired in via `guuey mcp secrets set DATABASE_URL=... --server <id>` (hosted MCP) or `guuey env set DATABASE_URL=...` (the agent worker and its colocated MCP children — the pod's declared env/secrets are handed to every colocated child), consumed through the provider's serverless driver | Guuey **integrates, never operates** databases — that's the platform's hosting policy, not a v1 gap. Pick the provider's **`us-east-1`** region: a guuey-hosted MCP → provider hop is then same-region AWS backbone, single-digit-ms — comparable to a cross-AZ hop, and agent turns are already dominated by seconds of LLM inference. |
21
21
  | Local Redis, SQLite, or any file written as a database | **Never.** Not for v1, not "temporarily." | Pods are ephemeral and horizontally replaced — a local store vanishes on the next deploy, restart, or scale event, with no warning to you or the user. |
22
- | Per-user files/blobs from **inside the agent pod** (`src/worker.ts`) | [`@guuey/fs`](https://www.npmjs.com/package/@guuey/fs)'s `homeDir()`/`appDir()`/`sessionDir()`, or the raw `$GUUEY_HOME_DIR`/`$GUUEY_APP_DIR` env vars + `node:fs` | Every invoke already gets these three bound directories — `$GUUEY_HOME_DIR` is durable per-user, `$GUUEY_APP_DIR` is read-only shared, cwd is session scratch. No wrapper API required, but the helpers save you the env-var lookups. |
22
+ | Per-user files/blobs from **inside the agent pod** (the agent entry) | [`@guuey/fs`](https://www.npmjs.com/package/@guuey/fs)'s `homeDir()`/`appDir()`/`sessionDir()`, or the raw `$GUUEY_HOME_DIR`/`$GUUEY_APP_DIR` env vars + `node:fs` | Every invoke already gets these three bound directories — `$GUUEY_HOME_DIR` is durable per-user, `$GUUEY_APP_DIR` is read-only shared, cwd is session scratch. No wrapper API required, but the helpers save you the env-var lookups. |
23
23
  | Per-user files/blobs from **inside an MCP server** (`mcps/*`) | Not yet available — `@guuey/files` is planned but not shipped. Fall back to the managed-DB row above (e.g. store blobs in the provider's object storage) until it lands. | Don't build against an API that doesn't exist yet. |
24
24
  | Conversation / chat history | **Do not re-implement.** The platform already persists it. | Guuey writes thread history to DynamoDB and streams it back over AppSync; agents that keep their own transcript store are duplicating (and diverging from) data the platform already owns. |
25
25
 
@@ -18,9 +18,15 @@ locally with one command, and deployable to guuey with one more.
18
18
  ├── ggui/ # ggui.json + blueprints/ + themes/ — generative-UI config.
19
19
  │ # `ggui serve` runs against this locally; it's pushed to your
20
20
  │ # deployed app's guuey-managed ggui instance on `guuey deploy`.
21
- ├── web/ # a small Vite SPA chat client — the local dev surface, and a
22
- │ # worked example of the bring-your-own-frontend path
21
+ ├── web/ # the product frontend (Vite + React on @guuey/chat):
22
+ │ # landing (widget) · login (guest + BYO-OIDC seam) · home
23
+ │ # (status + distribution guide) · the chat surface
24
+ ├── guuey.app.json # frontend/brand config — written by `pnpm bootstrap`
25
+ │ # (schema: guuey.app.schema.json; public-safe by design)
26
+ ├── AGENTS.md # coding-agent steering; `pnpm bootstrap` maintains the
27
+ │ # managed block with this project's real facts
23
28
  ├── scripts/dev.mjs # `pnpm dev` orchestrator — boots the whole local stack
29
+ ├── scripts/bootstrap.mjs # `pnpm bootstrap` — configure, then `-- --link` to bind
24
30
  ├── .env.example # ANTHROPIC_API_KEY / OPENAI_API_KEY for local dev
25
31
  └── .mcp.json # Claude Code convenience wiring (mcp.ggui.ai/dev)
26
32
  ```
@@ -33,11 +39,19 @@ level rather than nested under a `servers/` or `apps/` folder.
33
39
 
34
40
  ```bash
35
41
  pnpm install
42
+ pnpm bootstrap # brand, theme, copy → guuey.app.json + AGENTS.md (no account needed;
43
+ # every web page is gated on this, and production builds fail without it)
36
44
  cp .env.example .env.local # done automatically on scaffold if .env.local is absent
37
45
  # set ANTHROPIC_API_KEY (or OPENAI_API_KEY, for the openai-agents-sdk template) in .env.local
38
46
  pnpm dev
39
47
  ```
40
48
 
49
+ When the agent is deployed (`guuey login && guuey deploy`), bind it into the
50
+ frontend: `pnpm bootstrap -- --link` — that records the app id, endpoint,
51
+ widget origin and portal link in `guuey.app.json` and pushes brand basics to
52
+ the platform. `pnpm status` shows the live app state; `pnpm bootstrap -- --check`
53
+ prints machine-readable configuration state.
54
+
41
55
  `pnpm dev` (`scripts/dev.mjs`) boots four processes with prefixed, interleaved
42
56
  logs. Ctrl-C tears all of them down together.
43
57
 
@@ -46,7 +60,7 @@ logs. Ctrl-C tears all of them down together.
46
60
  | `worker` | — | `tsup --watch` — rebuilds `guuey.worker.js` on every save |
47
61
  | `guuey dev` | :6790 | local router: spawns your worker per turn, streams SSE; auto-spawns every `colocated` MCP entry — `mcps/todo` lands on its `devPort` :6782 |
48
62
  | `ggui serve` | :6781 | local generative-UI server, over `ggui/` |
49
- | `web` | :6890 | the Vite chat SPA |
63
+ | `web` | :6890 | the product frontend (landing/login/home/chat on @guuey/chat) |
50
64
 
51
65
  The todo MCP still answers on :6782 — it's just a supervised child of
52
66
  `guuey dev` now (copy `mcps/todo/` to add your own server; new `colocated`
@@ -0,0 +1,5 @@
1
+ node_modules/
2
+ dist/
3
+ .env.local
4
+ guuey.worker.js
5
+ .guuey-dev/
@@ -0,0 +1,28 @@
1
+ {
2
+ "$schema": "./guuey.app.schema.json",
3
+ "schema": 1,
4
+ "bootstrapped": false,
5
+ "brand": {
6
+ "name": "agentic-app-template",
7
+ "tagline": "An agentic app built on guuey",
8
+ "logoText": "AA"
9
+ },
10
+ "theme": {
11
+ "accent": "#6c5ce7",
12
+ "mode": "light"
13
+ },
14
+ "copy": {
15
+ "landing": {
16
+ "headline": "Ask anything.",
17
+ "sub": "This site has an agent. Open the chat, or use the launcher in the corner."
18
+ },
19
+ "login": {
20
+ "guestHint": "One click, no account — this browser gets its own private thread the agent remembers."
21
+ }
22
+ },
23
+ "auth": {
24
+ "oidc": null
25
+ },
26
+ "link": null,
27
+ "demoMode": false
28
+ }
@@ -0,0 +1,119 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "guuey.app.json",
4
+ "description": "App-level configuration for this guuey agentic app. Written by `pnpm bootstrap`; safe to hand-edit. Public-safe by construction: nothing in this file is a secret (the appId ships in page HTML by design).",
5
+ "type": "object",
6
+ "required": ["schema", "bootstrapped", "brand", "theme", "copy", "auth", "link", "demoMode"],
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "$schema": { "type": "string" },
10
+ "schema": { "const": 1 },
11
+ "bootstrapped": {
12
+ "type": "boolean",
13
+ "description": "Flipped true by `pnpm bootstrap`. Dev renders a setup screen until then; production builds fail."
14
+ },
15
+ "brand": {
16
+ "type": "object",
17
+ "required": ["name", "tagline", "logoText"],
18
+ "additionalProperties": false,
19
+ "properties": {
20
+ "name": { "type": "string", "minLength": 1 },
21
+ "tagline": { "type": "string" },
22
+ "logoText": {
23
+ "type": "string",
24
+ "maxLength": 4,
25
+ "description": "1-4 characters shown in the square brand mark."
26
+ }
27
+ }
28
+ },
29
+ "theme": {
30
+ "type": "object",
31
+ "required": ["accent", "mode"],
32
+ "additionalProperties": false,
33
+ "properties": {
34
+ "accent": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
35
+ "mode": { "enum": ["light", "dark"] }
36
+ }
37
+ },
38
+ "copy": {
39
+ "type": "object",
40
+ "required": ["landing", "login"],
41
+ "additionalProperties": false,
42
+ "properties": {
43
+ "landing": {
44
+ "type": "object",
45
+ "required": ["headline", "sub"],
46
+ "additionalProperties": false,
47
+ "properties": {
48
+ "headline": { "type": "string" },
49
+ "sub": { "type": "string" }
50
+ }
51
+ },
52
+ "login": {
53
+ "type": "object",
54
+ "required": ["guestHint"],
55
+ "additionalProperties": false,
56
+ "properties": {
57
+ "guestHint": { "type": "string" }
58
+ }
59
+ }
60
+ }
61
+ },
62
+ "auth": {
63
+ "type": "object",
64
+ "required": ["oidc"],
65
+ "additionalProperties": false,
66
+ "properties": {
67
+ "oidc": {
68
+ "description": "BYO-OIDC sign-in. null = guest-only. When set, the bound guuey app must be in BYO auth mode for the same issuer: `guuey apps update <appId> --auth-mode byo --issuer-url <issuer> --audience <clientId>`.",
69
+ "oneOf": [
70
+ { "type": "null" },
71
+ {
72
+ "type": "object",
73
+ "required": ["issuer", "clientId"],
74
+ "additionalProperties": false,
75
+ "properties": {
76
+ "issuer": { "type": "string", "format": "uri" },
77
+ "clientId": { "type": "string", "minLength": 1 }
78
+ }
79
+ }
80
+ ]
81
+ }
82
+ }
83
+ },
84
+ "link": {
85
+ "description": "The bound guuey app. null until `pnpm bootstrap -- --link`. Every value here is read back from the platform, never derived by hand.",
86
+ "oneOf": [
87
+ { "type": "null" },
88
+ {
89
+ "type": "object",
90
+ "required": [
91
+ "appId",
92
+ "env",
93
+ "apiBaseUrl",
94
+ "endpointUrl",
95
+ "widgetOrigin",
96
+ "portalUrl",
97
+ "slug",
98
+ "pageUrl"
99
+ ],
100
+ "additionalProperties": false,
101
+ "properties": {
102
+ "appId": { "type": "string", "minLength": 1 },
103
+ "env": { "enum": ["dev", "staging", "release"] },
104
+ "apiBaseUrl": { "type": "string", "format": "uri" },
105
+ "endpointUrl": { "type": "string", "format": "uri" },
106
+ "widgetOrigin": { "type": "string", "format": "uri" },
107
+ "portalUrl": { "type": "string", "format": "uri" },
108
+ "slug": { "oneOf": [{ "type": "string" }, { "type": "null" }] },
109
+ "pageUrl": { "oneOf": [{ "type": "string", "format": "uri" }, { "type": "null" }] }
110
+ }
111
+ }
112
+ ]
113
+ },
114
+ "demoMode": {
115
+ "type": "boolean",
116
+ "description": "Renders the demo chrome (banner + fictional-product honesty strip). Off in every customer clone."
117
+ }
118
+ }
119
+ }
@@ -5,16 +5,19 @@
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "dev": "node scripts/dev.mjs",
8
+ "bootstrap": "node scripts/bootstrap.mjs",
9
+ "status": "guuey apps get && guuey agent status",
8
10
  "build": "tsup",
9
11
  "typecheck": "tsc --noEmit"
10
12
  },
11
13
  "dependencies": {
12
14
  "@openai/agents": "^0.12.0",
13
- "@guuey/config": "0.8.1",
14
- "@guuey/worker": "0.8.1"
15
+ "@guuey/config": "0.10.0",
16
+ "@guuey/worker": "0.10.0"
15
17
  },
16
18
  "devDependencies": {
17
- "@guuey/cli": "0.8.1",
19
+ "@ggui-ai/cli": "0.6.3",
20
+ "@guuey/cli": "0.10.0",
18
21
  "tsup": "^8.5.0",
19
22
  "tsx": "^4.19.0",
20
23
  "typescript": "^5.8.0"