denchclaw 2.3.21 → 2.4.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.
- package/apps/web/.next/standalone/apps/web/.next/BUILD_ID +1 -1
- package/apps/web/.next/standalone/apps/web/.next/app-build-manifest.json +233 -198
- package/apps/web/.next/standalone/apps/web/.next/app-path-routes-manifest.json +32 -27
- package/apps/web/.next/standalone/apps/web/.next/build-manifest.json +5 -5
- package/apps/web/.next/standalone/apps/web/.next/cache/config.json +3 -3
- package/apps/web/.next/standalone/apps/web/.next/prerender-manifest.json +3 -3
- package/apps/web/.next/standalone/apps/web/.next/react-loadable-manifest.json +1 -4
- package/apps/web/.next/standalone/apps/web/.next/required-server-files.json +1 -1
- package/apps/web/.next/standalone/apps/web/.next/routes-manifest.json +34 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/cron/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/proxy/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/serve/[...path]/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/store/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/apps/webhooks/[...path]/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/active/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/route.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/runs/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/stop/route.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/stop/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/stream/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/chat/subagents/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/cron/jobs/[jobId]/runs/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/cron/jobs/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/cron/runs/[sessionId]/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/cron/runs/search-transcript/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/feedback/route.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/feedback/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/channels/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/chat/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/chat/stream/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/sessions/[id]/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/gateway/sessions/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/memories/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/profiles/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/profiles/switch/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/sessions/[sessionId]/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/terminal/port/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/web-sessions/[id]/messages/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/web-sessions/[id]/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/web-sessions/route.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/web-sessions/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/assets/[...path]/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/browse/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/browse-file/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/context/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/copy/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/db/introspect/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/db/query/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/delete/route.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/delete/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/execute/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/file/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/init/route.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/init/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/link-preview/route.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/link-preview/route.js.nft.json +1 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/link-preview/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/list/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/mkdir/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/move/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/actions/route.js +54 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/actions/route.js.nft.json +1 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/actions/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/actions/runs/route.js +4 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/actions/runs/route.js.nft.json +1 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/actions/runs/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/display-field/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/[id]/content/route.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/[id]/content/route.js.nft.json +1 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/[id]/content/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/[id]/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/bulk-delete/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/options/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/route.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/entries/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/[fieldId]/route.js +9 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/[fieldId]/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/reorder/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/route.js +10 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/route.js.nft.json +1 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/fields/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/objects/[name]/views/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/open-file/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/path-info/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/query/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/raw-file/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/rename/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/reports/execute/route.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/reports/execute/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/search-index/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/suggest-files/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/switch/route.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/switch/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/thumbnail/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/tree/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/upload/route.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/upload/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/virtual-file/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/watch/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/api/workspace/write-binary/route_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/page.js +104 -55
- package/apps/web/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app/workspace/page_client-reference-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/app-paths-manifest.json +32 -27
- package/apps/web/.next/standalone/apps/web/.next/server/chunks/6787.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/chunks/687.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/chunks/8137.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/functions-config-manifest.json +15 -10
- package/apps/web/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
- package/apps/web/.next/standalone/apps/web/.next/server/webpack-runtime.js +1 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/2716-475d96c202834586.js +135 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/cron/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/proxy/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/serve/[...path]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/store/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/webhooks/[...path]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/active/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/runs/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/stop/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/stream/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/subagents/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/jobs/[jobId]/runs/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/jobs/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/runs/[sessionId]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/runs/search-transcript/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/feedback/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/channels/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/chat/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/chat/stream/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/sessions/[id]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/sessions/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/memories/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/profiles/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/profiles/switch/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/sessions/[sessionId]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/sessions/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/skills/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/terminal/port/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/[id]/messages/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/[id]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/assets/[...path]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/browse/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/browse-file/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/context/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/copy/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/db/introspect/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/db/query/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/delete/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/execute/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/file/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/init/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/link-preview/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/list/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/mkdir/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/move/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/runs/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/display-field/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/content/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/bulk-delete/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/options/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/reorder/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/views/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/open-file/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/path-info/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/query/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/raw-file/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/rename/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/reports/execute/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/search-index/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/suggest-files/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/switch/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/thumbnail/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/tree/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/upload/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/virtual-file/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/watch/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/write-binary/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/{layout-2ada610571ddd42f.js → layout-f08988a91b85294a.js} +1 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/page-64cad81306c18be9.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/webpack-a769c08a3fea86bb.js +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/css/fb279c912601f360.css +1 -0
- package/apps/web/.next/standalone/apps/web/.next/static/xzgogMMcs02a6BQa5tMBA/_buildManifest.js +1 -0
- package/apps/web/.next/standalone/apps/web/lib/action-sdk-runtime.js +121 -0
- package/apps/web/.next/standalone/apps/web/package.json +1 -0
- package/apps/web/.next/standalone/apps/web/server.js +1 -1
- package/apps/web/.next/standalone/package.json +1 -1
- package/apps/web/.next/static/chunks/2716-475d96c202834586.js +135 -0
- package/apps/web/.next/static/chunks/app/api/apps/cron/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/apps/proxy/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/apps/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/apps/serve/[...path]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/apps/store/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/apps/webhooks/[...path]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/chat/active/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/chat/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/chat/runs/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/chat/stop/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/chat/stream/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/chat/subagents/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/cron/jobs/[jobId]/runs/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/cron/jobs/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/cron/runs/[sessionId]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/cron/runs/search-transcript/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/feedback/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/gateway/channels/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/gateway/chat/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/gateway/chat/stream/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/gateway/sessions/[id]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/gateway/sessions/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/memories/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/profiles/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/profiles/switch/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/sessions/[sessionId]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/sessions/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/skills/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/terminal/port/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/web-sessions/[id]/messages/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/web-sessions/[id]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/web-sessions/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/assets/[...path]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/browse/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/browse-file/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/context/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/copy/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/db/introspect/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/db/query/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/delete/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/execute/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/file/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/init/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/link-preview/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/list/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/mkdir/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/move/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/actions/runs/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/display-field/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/content/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/bulk-delete/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/options/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/reorder/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/views/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/open-file/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/path-info/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/query/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/raw-file/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/rename/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/reports/execute/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/search-index/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/suggest-files/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/switch/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/thumbnail/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/tree/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/upload/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/virtual-file/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/watch/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/api/workspace/write-binary/route-d14ffafd970f186e.js +1 -0
- package/apps/web/.next/static/chunks/app/{layout-2ada610571ddd42f.js → layout-f08988a91b85294a.js} +1 -1
- package/apps/web/.next/static/chunks/app/page-64cad81306c18be9.js +1 -0
- package/apps/web/.next/static/chunks/webpack-a769c08a3fea86bb.js +1 -0
- package/apps/web/.next/static/css/fb279c912601f360.css +1 -0
- package/apps/web/.next/static/xzgogMMcs02a6BQa5tMBA/_buildManifest.js +1 -0
- package/assets/seed/schema.sql +15 -0
- package/dist/entry.js +1 -1
- package/dist/{program-IDoEjVLE.js → program-DcrLV9Z2.js} +8 -1
- package/dist/{run-main-D2k8GHwe.js → run-main-D7Ux65aN.js} +1 -1
- package/extensions/dench-identity/index.ts +1 -9
- package/extensions/posthog-analytics/lib/build-env.js +1 -1
- package/package.json +1 -1
- package/skills/crm/SKILL.md +49 -926
- package/skills/crm/actions/SKILL.md +600 -0
- package/skills/crm/documents/SKILL.md +64 -0
- package/skills/crm/duckdb-operations/SKILL.md +546 -0
- package/skills/crm/object-builder/SKILL.md +361 -0
- package/skills/crm/reports/SKILL.md +199 -0
- package/skills/crm/views-filters/SKILL.md +303 -0
- package/skills/gstack/SKILL.md +101 -0
- package/skills/gstack/benchmark/SKILL.md +86 -0
- package/skills/gstack/canary/SKILL.md +65 -0
- package/skills/gstack/careful/SKILL.md +66 -0
- package/skills/gstack/design-consultation/SKILL.md +90 -0
- package/skills/gstack/design-review/SKILL.md +72 -0
- package/skills/gstack/document-release/SKILL.md +112 -0
- package/skills/gstack/freeze/SKILL.md +57 -0
- package/skills/gstack/guard/SKILL.md +37 -0
- package/skills/gstack/investigate/SKILL.md +111 -0
- package/skills/gstack/land-and-deploy/SKILL.md +77 -0
- package/skills/gstack/office-hours/SKILL.md +105 -0
- package/skills/gstack/plan-ceo-review/SKILL.md +108 -0
- package/skills/gstack/plan-design-review/SKILL.md +99 -0
- package/skills/gstack/plan-eng-review/SKILL.md +129 -0
- package/skills/gstack/qa/SKILL.md +121 -0
- package/skills/gstack/qa-only/SKILL.md +51 -0
- package/skills/gstack/retro/SKILL.md +88 -0
- package/skills/gstack/review/SKILL.md +144 -0
- package/skills/gstack/ship/SKILL.md +126 -0
- package/skills/gstack/unfreeze/SKILL.md +23 -0
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/2597.f31531534ad0b96f.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/4652.ca2ab4e205060d84.js +0 -60
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/6861-58d368bcf4e23b55.js +0 -76
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/cron/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/proxy/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/serve/[...path]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/store/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/apps/webhooks/[...path]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/active/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/runs/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/stop/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/stream/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/chat/subagents/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/jobs/[jobId]/runs/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/jobs/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/runs/[sessionId]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/cron/runs/search-transcript/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/feedback/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/channels/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/chat/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/chat/stream/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/sessions/[id]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/gateway/sessions/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/memories/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/profiles/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/profiles/switch/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/sessions/[sessionId]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/sessions/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/skills/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/terminal/port/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/[id]/messages/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/[id]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/web-sessions/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/assets/[...path]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/browse/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/browse-file/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/context/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/copy/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/db/introspect/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/db/query/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/delete/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/execute/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/file/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/init/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/list/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/mkdir/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/move/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/display-field/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/bulk-delete/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/options/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/reorder/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/views/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/open-file/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/path-info/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/query/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/raw-file/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/rename/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/reports/execute/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/search-index/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/suggest-files/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/switch/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/thumbnail/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/tree/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/upload/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/virtual-file/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/watch/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/api/workspace/write-binary/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/app/page-a1a7eac29d935a3e.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/chunks/webpack-43066e1a249665ba.js +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/css/4c7acc74b29f04e2.css +0 -1
- package/apps/web/.next/standalone/apps/web/.next/static/kXwi5ZTYAYlvvWmNAsdo_/_buildManifest.js +0 -1
- package/apps/web/.next/static/chunks/2597.f31531534ad0b96f.js +0 -1
- package/apps/web/.next/static/chunks/4652.ca2ab4e205060d84.js +0 -60
- package/apps/web/.next/static/chunks/6861-58d368bcf4e23b55.js +0 -76
- package/apps/web/.next/static/chunks/app/api/apps/cron/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/apps/proxy/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/apps/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/apps/serve/[...path]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/apps/store/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/apps/webhooks/[...path]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/chat/active/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/chat/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/chat/runs/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/chat/stop/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/chat/stream/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/chat/subagents/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/cron/jobs/[jobId]/runs/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/cron/jobs/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/cron/runs/[sessionId]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/cron/runs/search-transcript/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/feedback/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/gateway/channels/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/gateway/chat/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/gateway/chat/stream/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/gateway/sessions/[id]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/gateway/sessions/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/memories/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/profiles/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/profiles/switch/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/sessions/[sessionId]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/sessions/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/skills/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/terminal/port/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/web-sessions/[id]/messages/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/web-sessions/[id]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/web-sessions/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/assets/[...path]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/browse/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/browse-file/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/context/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/copy/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/db/introspect/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/db/query/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/delete/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/execute/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/file/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/init/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/list/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/mkdir/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/move/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/display-field/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/[id]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/bulk-delete/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/options/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/entries/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/enum-rename/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/[fieldId]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/fields/reorder/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/objects/[name]/views/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/open-file/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/path-info/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/query/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/raw-file/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/rename/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/reports/execute/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/search-index/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/suggest-files/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/switch/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/thumbnail/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/tree/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/upload/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/virtual-file/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/watch/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/api/workspace/write-binary/route-580e9ace8a991c49.js +0 -1
- package/apps/web/.next/static/chunks/app/page-a1a7eac29d935a3e.js +0 -1
- package/apps/web/.next/static/chunks/webpack-43066e1a249665ba.js +0 -1
- package/apps/web/.next/static/css/4c7acc74b29f04e2.css +0 -1
- package/apps/web/.next/static/kXwi5ZTYAYlvvWmNAsdo_/_buildManifest.js +0 -1
- /package/apps/web/.next/standalone/apps/web/.next/static/{kXwi5ZTYAYlvvWmNAsdo_ → xzgogMMcs02a6BQa5tMBA}/_ssgManifest.js +0 -0
- /package/apps/web/.next/static/{kXwi5ZTYAYlvvWmNAsdo_ → xzgogMMcs02a6BQa5tMBA}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: views-filters
|
|
3
|
+
description: .object.yaml format and template, view type settings (kanban, calendar, timeline, gallery, list), saved views with filter operators, and date format rules.
|
|
4
|
+
metadata: { "openclaw": { "inject": true, "always": true, "emoji": "👁️" } }
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# CRM Views & Filters
|
|
8
|
+
|
|
9
|
+
This skill covers `.object.yaml` format, view types, saved views, and filter operators. For workspace fundamentals, see the parent **crm** skill (`crm/SKILL.md`). For creating objects end-to-end, see **object-builder** (`crm/object-builder/SKILL.md`).
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## .object.yaml Format
|
|
14
|
+
|
|
15
|
+
Every object directory MUST contain a `.object.yaml` file. This is a lightweight metadata projection that the sidebar reads. Generate it from DuckDB after creating or modifying any object.
|
|
16
|
+
|
|
17
|
+
Template:
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
id: "<object_id from DuckDB>"
|
|
21
|
+
name: "<object_name>"
|
|
22
|
+
description: "<object_description>"
|
|
23
|
+
icon: "<lucide_icon_name>"
|
|
24
|
+
default_view: "<table|kanban|calendar|timeline|gallery|list>"
|
|
25
|
+
entry_count: <number>
|
|
26
|
+
fields:
|
|
27
|
+
- name: "Full Name"
|
|
28
|
+
type: text
|
|
29
|
+
required: true
|
|
30
|
+
- name: "Email Address"
|
|
31
|
+
type: email
|
|
32
|
+
required: true
|
|
33
|
+
- name: "Website"
|
|
34
|
+
type: url
|
|
35
|
+
- name: "Status"
|
|
36
|
+
type: enum
|
|
37
|
+
values: ["New", "Contacted", "Qualified", "Converted"]
|
|
38
|
+
- name: "Company"
|
|
39
|
+
type: relation
|
|
40
|
+
related_object: company
|
|
41
|
+
relationship_type: many_to_one
|
|
42
|
+
- name: "Assigned To"
|
|
43
|
+
type: user
|
|
44
|
+
- name: "Actions"
|
|
45
|
+
type: action
|
|
46
|
+
action_config:
|
|
47
|
+
actions:
|
|
48
|
+
- id: act_mark_done
|
|
49
|
+
label: "Mark Done"
|
|
50
|
+
variant: success
|
|
51
|
+
scriptPath: ".actions/mark-done.sh"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Action fields** include `action_config` (not `values` or `required`). The `action_config` mirrors the JSON stored in the field's `default_value` in DuckDB. See the **actions** skill for details.
|
|
55
|
+
|
|
56
|
+
### View Type Settings
|
|
57
|
+
|
|
58
|
+
`.object.yaml` supports a `view_settings` block for configuring how each view type renders. These settings serve as defaults; individual saved views can override them.
|
|
59
|
+
|
|
60
|
+
```yaml
|
|
61
|
+
view_settings:
|
|
62
|
+
kanbanField: "Status" # enum field to group kanban columns by
|
|
63
|
+
calendarDateField: "Due Date" # date field for calendar events
|
|
64
|
+
calendarEndDateField: "End Date" # optional: end date for multi-day events
|
|
65
|
+
calendarMode: "month" # day | week | month | year
|
|
66
|
+
timelineStartField: "Start Date" # date field for timeline bar start
|
|
67
|
+
timelineEndField: "End Date" # date field for timeline bar end
|
|
68
|
+
timelineGroupField: "Status" # optional: enum field to group timeline rows
|
|
69
|
+
timelineZoom: "week" # day | week | month | quarter
|
|
70
|
+
galleryTitleField: "Name" # text field for gallery card title
|
|
71
|
+
galleryCoverField: "Image" # optional: field for gallery card cover
|
|
72
|
+
listTitleField: "Name" # text field for list row title
|
|
73
|
+
listSubtitleField: "Description" # optional: text field for list row subtitle
|
|
74
|
+
column_widths: # optional: custom column widths in pixels (persisted on drag-resize)
|
|
75
|
+
Full Name: 250
|
|
76
|
+
Email Address: 200
|
|
77
|
+
Status: 150
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
If an object has no custom date field, you MUST fall back to system timestamps:
|
|
81
|
+
|
|
82
|
+
- `created_at` (always available on entries)
|
|
83
|
+
- `updated_at` (always available on entries)
|
|
84
|
+
|
|
85
|
+
These can be used in `calendarDateField`, `timelineStartField`, `timelineEndField`, filters, sorts, and date-based user requests.
|
|
86
|
+
|
|
87
|
+
**View types:**
|
|
88
|
+
|
|
89
|
+
| View Type | Best for | Required settings |
|
|
90
|
+
| ---------- | ------------------------------- | --------------------------- |
|
|
91
|
+
| `table` | Spreadsheet-like data editing | None (default) |
|
|
92
|
+
| `kanban` | Status-based boards | `kanbanField` (enum) |
|
|
93
|
+
| `calendar` | Date-based entries | `calendarDateField` (date) |
|
|
94
|
+
| `timeline` | Gantt charts / project planning | `timelineStartField` (date) |
|
|
95
|
+
| `gallery` | Visual card grid | None (auto-detects title) |
|
|
96
|
+
| `list` | Simple compact list | None (auto-detects title) |
|
|
97
|
+
|
|
98
|
+
When creating objects with specific use cases, set `default_view` and `view_settings` appropriately:
|
|
99
|
+
|
|
100
|
+
- Task boards: `default_view: "kanban"` + `view_settings.kanbanField: "Status"`
|
|
101
|
+
- Event calendars: `default_view: "calendar"` + `view_settings.calendarDateField: "Date"`
|
|
102
|
+
- Project timelines: `default_view: "timeline"` + `view_settings.timelineStartField: "Start Date"` + `view_settings.timelineEndField: "End Date"`
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Saved Views and Filters
|
|
107
|
+
|
|
108
|
+
`.object.yaml` supports a `views` section for saved filter views. These views appear in the UI filter bar and can be created or modified by the agent to immediately change what the user sees (the UI live-reloads via the file watcher).
|
|
109
|
+
|
|
110
|
+
Default behavior:
|
|
111
|
+
|
|
112
|
+
- When the user asks to filter, narrow, segment, show only, or hide entries in the UI, create or update a saved view and set `active_view` even if they did not explicitly ask to "create a view".
|
|
113
|
+
- For table views, `columns` is optional. Omit it by default. If `columns` is absent, the UI shows the default/all columns for that view.
|
|
114
|
+
- `views[].columns` controls visibility only, not display order.
|
|
115
|
+
- Only include `columns` when the user explicitly asks for a specific visible subset of columns.
|
|
116
|
+
- If the user asks to reorder columns, update the object's field `sort_order` in DuckDB and regenerate the top-level `.object.yaml` `fields` list in the same order.
|
|
117
|
+
|
|
118
|
+
### Filter Operators by Field Type
|
|
119
|
+
|
|
120
|
+
| Field Type | Operators |
|
|
121
|
+
| ------------------- | ------------------------------------------------------------------------------------------ |
|
|
122
|
+
| text/richtext/email | contains, not_contains, equals, not_equals, starts_with, ends_with, is_empty, is_not_empty |
|
|
123
|
+
| number | eq, neq, gt, gte, lt, lte, between, is_empty, is_not_empty |
|
|
124
|
+
| date | on, before, after, date_between, relative_past, relative_next, is_empty, is_not_empty |
|
|
125
|
+
| enum | is, is_not, is_any_of, is_none_of, is_empty, is_not_empty |
|
|
126
|
+
| boolean | is_true, is_false, is_empty, is_not_empty |
|
|
127
|
+
| relation/user | has_any, has_none, has_all, is_empty, is_not_empty |
|
|
128
|
+
| tags | contains, not_contains, is_empty, is_not_empty |
|
|
129
|
+
|
|
130
|
+
**System timestamp columns are always available on every object entry**:
|
|
131
|
+
|
|
132
|
+
- `created_at` (date/time)
|
|
133
|
+
- `updated_at` (date/time)
|
|
134
|
+
|
|
135
|
+
Treat them as date fields for filtering, sorting, calendar, and timeline operations even when `fields` has no `date` type columns.
|
|
136
|
+
|
|
137
|
+
### Views Template
|
|
138
|
+
|
|
139
|
+
Append to `.object.yaml`:
|
|
140
|
+
|
|
141
|
+
**IMPORTANT: The `field` value in filter rules must match the exact field name (case-sensitive) as it appears in the `fields` list, or use system column names (`created_at`, `updated_at`).**
|
|
142
|
+
|
|
143
|
+
```yaml
|
|
144
|
+
views:
|
|
145
|
+
- name: "Active deals"
|
|
146
|
+
view_type: "table"
|
|
147
|
+
filters:
|
|
148
|
+
id: root
|
|
149
|
+
conjunction: and
|
|
150
|
+
rules:
|
|
151
|
+
- id: f1
|
|
152
|
+
field: "Status"
|
|
153
|
+
operator: is_any_of
|
|
154
|
+
value:
|
|
155
|
+
- "Negotiating"
|
|
156
|
+
- "Proposal sent"
|
|
157
|
+
- id: f2
|
|
158
|
+
field: "Amount"
|
|
159
|
+
operator: gte
|
|
160
|
+
value: 10000
|
|
161
|
+
sort:
|
|
162
|
+
- field: updated_at
|
|
163
|
+
direction: desc
|
|
164
|
+
|
|
165
|
+
- name: "Board"
|
|
166
|
+
view_type: "kanban"
|
|
167
|
+
settings:
|
|
168
|
+
kanbanField: "Status"
|
|
169
|
+
|
|
170
|
+
- name: "Calendar"
|
|
171
|
+
view_type: "calendar"
|
|
172
|
+
settings:
|
|
173
|
+
calendarDateField: "Due Date"
|
|
174
|
+
calendarMode: "month"
|
|
175
|
+
|
|
176
|
+
- name: "Timeline"
|
|
177
|
+
view_type: "timeline"
|
|
178
|
+
settings:
|
|
179
|
+
timelineStartField: "Start Date"
|
|
180
|
+
timelineEndField: "End Date"
|
|
181
|
+
timelineGroupField: "Status"
|
|
182
|
+
timelineZoom: "week"
|
|
183
|
+
|
|
184
|
+
- name: "Overdue"
|
|
185
|
+
view_type: "table"
|
|
186
|
+
filters:
|
|
187
|
+
id: root
|
|
188
|
+
conjunction: and
|
|
189
|
+
rules:
|
|
190
|
+
- id: f1
|
|
191
|
+
field: "Due Date"
|
|
192
|
+
operator: before
|
|
193
|
+
value: today
|
|
194
|
+
- id: f2
|
|
195
|
+
field: "Status"
|
|
196
|
+
operator: is_not
|
|
197
|
+
value: Done
|
|
198
|
+
|
|
199
|
+
active_view: "Active deals"
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Each saved view can specify:
|
|
203
|
+
|
|
204
|
+
- `view_type`: `table` | `kanban` | `calendar` | `timeline` | `gallery` | `list` (defaults to object's `default_view`)
|
|
205
|
+
- `settings`: per-view-type configuration (overrides object-level `view_settings`)
|
|
206
|
+
- `filters`: standard filter rules
|
|
207
|
+
- `sort`: sort rules
|
|
208
|
+
- `columns`: optional visible column names for table view. Omit by default; if absent, the table shows the default/all columns. This controls visibility only, not order. Only set this when the user explicitly requests specific columns.
|
|
209
|
+
- `column_widths`: optional map of field name to pixel width. Set when the user explicitly asks for specific column sizes. The UI also auto-persists widths when columns are drag-resized.
|
|
210
|
+
|
|
211
|
+
When a user asks for date-based operations (e.g. move from one date to another) and no custom date fields exist, default to `created_at` unless the user explicitly asks for `updated_at`.
|
|
212
|
+
|
|
213
|
+
### Date Format
|
|
214
|
+
|
|
215
|
+
All date filter values MUST use ISO 8601 `YYYY-MM-DD` strings (e.g. `"2026-03-01"`). The special value `today` is also supported for `on`, `before`, and `after` operators.
|
|
216
|
+
|
|
217
|
+
### Date Range Filter (`date_between`)
|
|
218
|
+
|
|
219
|
+
```yaml
|
|
220
|
+
- id: f1
|
|
221
|
+
field: Due Date
|
|
222
|
+
operator: date_between
|
|
223
|
+
value:
|
|
224
|
+
- "2026-03-01"
|
|
225
|
+
- "2026-03-31"
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Relative Date Filters (e.g. "in the last 7 days")
|
|
229
|
+
|
|
230
|
+
```yaml
|
|
231
|
+
- id: f1
|
|
232
|
+
field: created_at
|
|
233
|
+
operator: relative_past
|
|
234
|
+
relativeAmount: 7
|
|
235
|
+
relativeUnit: days
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### OR Groups (match any rule)
|
|
239
|
+
|
|
240
|
+
```yaml
|
|
241
|
+
filters:
|
|
242
|
+
id: root
|
|
243
|
+
conjunction: or
|
|
244
|
+
rules:
|
|
245
|
+
- id: f1
|
|
246
|
+
field: "Status"
|
|
247
|
+
operator: is
|
|
248
|
+
value: "Active"
|
|
249
|
+
- id: f2
|
|
250
|
+
field: "Priority"
|
|
251
|
+
operator: is
|
|
252
|
+
value: "High"
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Generating .object.yaml from DuckDB
|
|
258
|
+
|
|
259
|
+
**When the user asks to filter/show/hide entries by natural language**, treat that as a request to create or update a saved view unless they clearly want a one-off analysis only. Write the `.object.yaml` with the appropriate views and set `active_view`. Do not add `columns` unless the user explicitly asks for specific visible columns. If they ask to reorder columns, handle that separately by updating field `sort_order` and regenerating the top-level `fields` projection. The web UI will pick up the change instantly via SSE file watcher. Every rule needs a unique `id` (short alphanumeric string). The root filter group also needs `id: root`.
|
|
260
|
+
|
|
261
|
+
Generate by querying DuckDB then writing the file:
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
# 1. Query object + fields from DuckDB
|
|
265
|
+
duckdb {{WORKSPACE_PATH}}/workspace.duckdb -json "
|
|
266
|
+
SELECT o.id, o.name, o.description, o.icon, o.default_view,
|
|
267
|
+
(SELECT COUNT(*) FROM entries WHERE object_id = o.id) as entry_count
|
|
268
|
+
FROM objects o WHERE o.name = 'lead'
|
|
269
|
+
"
|
|
270
|
+
duckdb {{WORKSPACE_PATH}}/workspace.duckdb -json "
|
|
271
|
+
SELECT name, type, required, enum_values, default_value FROM fields
|
|
272
|
+
WHERE object_id = (SELECT id FROM objects WHERE name = 'lead')
|
|
273
|
+
ORDER BY sort_order
|
|
274
|
+
"
|
|
275
|
+
|
|
276
|
+
# 2. Use the query results to write .object.yaml (use actual values, not placeholders)
|
|
277
|
+
OBJ_ID=$(duckdb {{WORKSPACE_PATH}}/workspace.duckdb -noheader -list "SELECT id FROM objects WHERE name = 'lead'")
|
|
278
|
+
ENTRY_COUNT=$(duckdb {{WORKSPACE_PATH}}/workspace.duckdb -noheader -list "SELECT COUNT(*) FROM entries WHERE object_id = '$OBJ_ID'")
|
|
279
|
+
|
|
280
|
+
mkdir -p {{WORKSPACE_PATH}}/lead
|
|
281
|
+
cat > {{WORKSPACE_PATH}}/lead/.object.yaml << EOF
|
|
282
|
+
id: "$OBJ_ID"
|
|
283
|
+
name: "lead"
|
|
284
|
+
description: "Sales leads tracking"
|
|
285
|
+
icon: "user-plus"
|
|
286
|
+
default_view: "table"
|
|
287
|
+
entry_count: $ENTRY_COUNT
|
|
288
|
+
fields:
|
|
289
|
+
- name: "Full Name"
|
|
290
|
+
type: text
|
|
291
|
+
required: true
|
|
292
|
+
- name: "Email Address"
|
|
293
|
+
type: email
|
|
294
|
+
required: true
|
|
295
|
+
- name: "Status"
|
|
296
|
+
type: enum
|
|
297
|
+
values: ["New", "Contacted", "Qualified", "Converted"]
|
|
298
|
+
- name: "Score"
|
|
299
|
+
type: number
|
|
300
|
+
- name: "Notes"
|
|
301
|
+
type: richtext
|
|
302
|
+
EOF
|
|
303
|
+
```
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gstack-workflow
|
|
3
|
+
description: Structured AI-assisted development workflow with specialist roles — Think, Plan, Build, Review, Test, Ship, Reflect. Adapted from garrytan/gstack (MIT).
|
|
4
|
+
metadata: { "openclaw": { "inject": true, "always": true, "emoji": "⚡" } }
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# gstack — Structured Development Workflow
|
|
8
|
+
|
|
9
|
+
A process that turns AI into a virtual engineering team. Eighteen specialist roles, structured as a sprint: **Think → Plan → Build → Review → Test → Ship → Reflect**. Each skill feeds into the next.
|
|
10
|
+
|
|
11
|
+
Adapted from [garrytan/gstack](https://github.com/garrytan/gstack) (MIT License).
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Completeness Principle — Boil the Lake
|
|
16
|
+
|
|
17
|
+
AI-assisted coding makes the marginal cost of completeness near-zero. When presenting options:
|
|
18
|
+
|
|
19
|
+
- If Option A is complete (all edge cases, full coverage) and Option B is a shortcut — **always recommend A**.
|
|
20
|
+
- **Lake vs. ocean:** A "lake" is boilable — 100% test coverage for a module, full feature implementation, all edge cases. An "ocean" is not — multi-quarter migrations, rewriting dependencies. Recommend boiling lakes. Flag oceans as out of scope.
|
|
21
|
+
- Don't skip the last 10% to "save time" — with AI, that 10% costs seconds.
|
|
22
|
+
|
|
23
|
+
## Search Before Building
|
|
24
|
+
|
|
25
|
+
Before building infrastructure or unfamiliar patterns — **search first**.
|
|
26
|
+
|
|
27
|
+
**Three layers of knowledge:**
|
|
28
|
+
- **Layer 1** (tried and true): Don't reinvent the wheel.
|
|
29
|
+
- **Layer 2** (new and popular): Search for these, but scrutinize.
|
|
30
|
+
- **Layer 3** (first principles): Original observations from reasoning about the specific problem. The most valuable.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Sprint Workflow
|
|
35
|
+
|
|
36
|
+
| Phase | Skill | Role | What it does |
|
|
37
|
+
|-------|-------|------|--------------|
|
|
38
|
+
| **Think** | [office-hours](office-hours/SKILL.md) | YC Office Hours | Forcing questions that reframe the product before code. Design doc feeds downstream. |
|
|
39
|
+
| **Plan** | [plan-ceo-review](plan-ceo-review/SKILL.md) | CEO / Founder | Rethink the problem. 10-star product. Four modes: Expansion, Selective, Hold, Reduction. |
|
|
40
|
+
| **Plan** | [plan-eng-review](plan-eng-review/SKILL.md) | Eng Manager | Lock architecture, data flow, diagrams, edge cases, tests. |
|
|
41
|
+
| **Plan** | [plan-design-review](plan-design-review/SKILL.md) | Senior Designer | Rate design dimensions 0-10, explain what a 10 looks like, edit the plan. |
|
|
42
|
+
| **Plan** | [design-consultation](design-consultation/SKILL.md) | Design Partner | Build a complete design system from scratch. |
|
|
43
|
+
| **Review** | [review](review/SKILL.md) | Staff Engineer | Find bugs that pass CI but blow up in production. Auto-fix obvious ones. |
|
|
44
|
+
| **Review** | [design-review](design-review/SKILL.md) | Designer Who Codes | Same audit as plan-design-review, then fixes what it finds. |
|
|
45
|
+
| **Debug** | [investigate](investigate/SKILL.md) | Debugger | Systematic root-cause debugging. No fixes without investigation. |
|
|
46
|
+
| **Test** | [qa](qa/SKILL.md) | QA Lead | Test the app, find bugs, fix with atomic commits, re-verify. |
|
|
47
|
+
| **Test** | [qa-only](qa-only/SKILL.md) | QA Reporter | Same methodology as qa, but report only — no code changes. |
|
|
48
|
+
| **Test** | [benchmark](benchmark/SKILL.md) | Performance Engineer | Page load times, Core Web Vitals, bundle sizes. Before/after on every PR. |
|
|
49
|
+
| **Ship** | [ship](ship/SKILL.md) | Release Engineer | Sync main, run tests, audit coverage, push, open PR. |
|
|
50
|
+
| **Ship** | [land-and-deploy](land-and-deploy/SKILL.md) | Release Engineer | Merge PR, wait for CI, deploy, verify production health. |
|
|
51
|
+
| **Ship** | [canary](canary/SKILL.md) | SRE | Post-deploy monitoring loop. Console errors, perf regressions, page failures. |
|
|
52
|
+
| **Reflect** | [retro](retro/SKILL.md) | Eng Manager | Weekly retro with per-person breakdowns, shipping streaks, test health. |
|
|
53
|
+
| **Reflect** | [document-release](document-release/SKILL.md) | Technical Writer | Update all docs to match what shipped. Catches stale READMEs. |
|
|
54
|
+
|
|
55
|
+
### Safety Tools
|
|
56
|
+
|
|
57
|
+
| Skill | What it does |
|
|
58
|
+
|-------|--------------|
|
|
59
|
+
| [careful](careful/SKILL.md) | Warn before destructive commands (rm -rf, DROP TABLE, force-push). |
|
|
60
|
+
| [freeze](freeze/SKILL.md) | Restrict edits to one directory to prevent accidental changes. |
|
|
61
|
+
| [guard](guard/SKILL.md) | Maximum safety: careful + freeze combined. |
|
|
62
|
+
| [unfreeze](unfreeze/SKILL.md) | Remove the freeze boundary. |
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Completion Status Protocol
|
|
67
|
+
|
|
68
|
+
When completing any skill workflow, report status using one of:
|
|
69
|
+
- **DONE** — All steps completed successfully. Evidence provided.
|
|
70
|
+
- **DONE_WITH_CONCERNS** — Completed, but with issues to flag.
|
|
71
|
+
- **BLOCKED** — Cannot proceed. State what's blocking and what was tried.
|
|
72
|
+
- **NEEDS_CONTEXT** — Missing information required to continue.
|
|
73
|
+
|
|
74
|
+
### Escalation
|
|
75
|
+
|
|
76
|
+
It is always OK to stop and say "this is too hard" or "I'm not confident in this result."
|
|
77
|
+
|
|
78
|
+
- If you have attempted a task 3 times without success, STOP and escalate.
|
|
79
|
+
- If you are uncertain about a security-sensitive change, STOP and escalate.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Suggesting Skills
|
|
84
|
+
|
|
85
|
+
When you notice the user is at a particular stage, suggest the appropriate skill:
|
|
86
|
+
|
|
87
|
+
- Brainstorming a new idea → suggest office-hours
|
|
88
|
+
- Reviewing a plan (strategy) → suggest plan-ceo-review
|
|
89
|
+
- Reviewing a plan (architecture) → suggest plan-eng-review
|
|
90
|
+
- Reviewing a plan (design) → suggest plan-design-review
|
|
91
|
+
- Creating a design system → suggest design-consultation
|
|
92
|
+
- Debugging errors → suggest investigate
|
|
93
|
+
- Testing the app → suggest qa
|
|
94
|
+
- Code review before merge → suggest review
|
|
95
|
+
- Visual design audit → suggest design-review
|
|
96
|
+
- Ready to deploy / create PR → suggest ship
|
|
97
|
+
- Post-ship doc updates → suggest document-release
|
|
98
|
+
- Weekly retrospective → suggest retro
|
|
99
|
+
- Working with production or live systems → suggest careful
|
|
100
|
+
|
|
101
|
+
All child skills are seeded into the workspace alongside this parent skill and can be read at `{{WORKSPACE_PATH}}/skills/gstack/<child>/SKILL.md`.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: benchmark
|
|
3
|
+
description: |
|
|
4
|
+
Performance benchmarking. Baseline page load times, Core Web Vitals, and
|
|
5
|
+
resource sizes. Compare before/after on every PR. Catch bundle size
|
|
6
|
+
regressions before they ship.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Benchmark — Measure Performance
|
|
10
|
+
|
|
11
|
+
Establish baselines and catch regressions.
|
|
12
|
+
|
|
13
|
+
**Related skills:** [qa](../qa/SKILL.md) | [review](../review/SKILL.md) | [ship](../ship/SKILL.md)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## What to Measure
|
|
18
|
+
|
|
19
|
+
### Core Web Vitals
|
|
20
|
+
- **LCP** (Largest Contentful Paint) — Target: < 2.5s
|
|
21
|
+
- **FID** (First Input Delay) — Target: < 100ms
|
|
22
|
+
- **CLS** (Cumulative Layout Shift) — Target: < 0.1
|
|
23
|
+
|
|
24
|
+
### Page Load
|
|
25
|
+
- **TTFB** (Time to First Byte)
|
|
26
|
+
- **DOMContentLoaded**
|
|
27
|
+
- **Load event**
|
|
28
|
+
- **Full page load** (all resources)
|
|
29
|
+
|
|
30
|
+
### Bundle Size
|
|
31
|
+
- **JavaScript bundle size** (compressed + uncompressed)
|
|
32
|
+
- **CSS bundle size**
|
|
33
|
+
- **Total transfer size**
|
|
34
|
+
- **Number of requests**
|
|
35
|
+
|
|
36
|
+
### Resource Analysis
|
|
37
|
+
- **Largest assets** by size
|
|
38
|
+
- **Uncompressed assets** that should be compressed
|
|
39
|
+
- **Unused JavaScript** (tree-shakeable)
|
|
40
|
+
- **Image optimization** opportunities
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Workflow
|
|
45
|
+
|
|
46
|
+
### 1. Baseline (before changes)
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
git stash # or checkout base branch
|
|
50
|
+
# Run measurements
|
|
51
|
+
git stash pop # or checkout feature branch
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 2. Current (after changes)
|
|
55
|
+
|
|
56
|
+
Run the same measurements on the current branch.
|
|
57
|
+
|
|
58
|
+
### 3. Compare
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
PERFORMANCE REPORT
|
|
62
|
+
═══════════════════════════════════════
|
|
63
|
+
Before After Delta
|
|
64
|
+
LCP: 2.1s 2.3s +200ms ⚠️
|
|
65
|
+
CLS: 0.02 0.01 -0.01 ✓
|
|
66
|
+
JS Bundle: 245KB 312KB +67KB ⚠️
|
|
67
|
+
CSS Bundle: 42KB 43KB +1KB ✓
|
|
68
|
+
Requests: 23 25 +2
|
|
69
|
+
Transfer: 890KB 1.1MB +210KB ⚠️
|
|
70
|
+
═══════════════════════════════════════
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 4. Flag Regressions
|
|
74
|
+
|
|
75
|
+
- JS bundle size increase > 10KB → warning
|
|
76
|
+
- LCP increase > 200ms → warning
|
|
77
|
+
- CLS increase > 0.05 → critical
|
|
78
|
+
- New unoptimized images → warning
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Important Rules
|
|
83
|
+
|
|
84
|
+
- Always compare against the base branch, not an absolute value
|
|
85
|
+
- Measure multiple times and take the median to reduce noise
|
|
86
|
+
- Flag regressions but don't block — some features legitimately increase size
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: canary
|
|
3
|
+
description: |
|
|
4
|
+
Post-deploy monitoring loop. Watches for console errors, performance
|
|
5
|
+
regressions, and page failures. Periodic screenshots and anomaly detection.
|
|
6
|
+
Use after deploying to production.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Canary — Post-Deploy Monitoring
|
|
10
|
+
|
|
11
|
+
Extended monitoring after deployment. Watch for problems that only appear under real traffic.
|
|
12
|
+
|
|
13
|
+
**Related skills:** [land-and-deploy](../land-and-deploy/SKILL.md) | [qa](../qa/SKILL.md) | [benchmark](../benchmark/SKILL.md)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Monitoring Loop
|
|
18
|
+
|
|
19
|
+
Run every 2-5 minutes for the specified duration (default: 30 minutes):
|
|
20
|
+
|
|
21
|
+
### Each Iteration
|
|
22
|
+
|
|
23
|
+
1. **Navigate** to the production URL
|
|
24
|
+
2. **Console errors** — any new JS exceptions since last check?
|
|
25
|
+
3. **Network errors** — any failed requests?
|
|
26
|
+
4. **Performance** — page load time within normal range?
|
|
27
|
+
5. **Screenshot** — visual comparison with previous iteration
|
|
28
|
+
6. **Key interactions** — test 2-3 critical flows (login, main feature, etc.)
|
|
29
|
+
|
|
30
|
+
### Anomaly Detection
|
|
31
|
+
|
|
32
|
+
Flag if any of these change between iterations:
|
|
33
|
+
|
|
34
|
+
- New console errors appear
|
|
35
|
+
- Network requests start failing
|
|
36
|
+
- Page load time increases > 50% from baseline
|
|
37
|
+
- Visual layout changes unexpectedly
|
|
38
|
+
- Key text content disappears
|
|
39
|
+
- HTTP status codes change (200 → 500)
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Output
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
CANARY REPORT
|
|
47
|
+
═══════════════════════════════════════
|
|
48
|
+
Duration: 30 minutes
|
|
49
|
+
Checks: 12
|
|
50
|
+
Anomalies: 0
|
|
51
|
+
Console errors: 0 new
|
|
52
|
+
Network errors: 0 new
|
|
53
|
+
Performance: Stable (avg 1.8s LCP)
|
|
54
|
+
Status: HEALTHY
|
|
55
|
+
═══════════════════════════════════════
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
If anomalies detected:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
⚠️ ANOMALY DETECTED at [timestamp]
|
|
62
|
+
Type: [console error / network failure / perf regression / visual change]
|
|
63
|
+
Details: [specific error or change]
|
|
64
|
+
Action: [recommend: investigate / revert / monitor]
|
|
65
|
+
```
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: careful
|
|
3
|
+
description: |
|
|
4
|
+
Safety guardrails — warns before destructive commands. Activate by saying
|
|
5
|
+
"be careful" or when working with production systems.
|
|
6
|
+
Warns on: rm -rf, DROP TABLE, force-push, git reset --hard, DELETE without WHERE.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Careful — Destructive Command Guardrails
|
|
10
|
+
|
|
11
|
+
When active, warn before any potentially destructive operation. The user must explicitly confirm before proceeding.
|
|
12
|
+
|
|
13
|
+
**Related skills:** [freeze](../freeze/SKILL.md) | [guard](../guard/SKILL.md) | [unfreeze](../unfreeze/SKILL.md)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Destructive Commands to Guard
|
|
18
|
+
|
|
19
|
+
### File System
|
|
20
|
+
- `rm -rf` — Recursive force delete
|
|
21
|
+
- `rm -r` on important directories
|
|
22
|
+
- Any operation that removes entire directories
|
|
23
|
+
|
|
24
|
+
### Database
|
|
25
|
+
- `DROP TABLE` / `DROP DATABASE`
|
|
26
|
+
- `DELETE` without `WHERE` clause
|
|
27
|
+
- `TRUNCATE TABLE`
|
|
28
|
+
- `ALTER TABLE DROP COLUMN`
|
|
29
|
+
|
|
30
|
+
### Git
|
|
31
|
+
- `git push --force` / `git push -f` (especially to main/master)
|
|
32
|
+
- `git reset --hard`
|
|
33
|
+
- `git clean -fd`
|
|
34
|
+
- `git branch -D` on shared branches
|
|
35
|
+
|
|
36
|
+
### Infrastructure
|
|
37
|
+
- Destroying cloud resources (terraform destroy, kubectl delete)
|
|
38
|
+
- Modifying production environment variables
|
|
39
|
+
- Stopping production services
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Warning Format
|
|
44
|
+
|
|
45
|
+
When a destructive command is about to execute:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
⚠️ DESTRUCTIVE COMMAND DETECTED
|
|
49
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
50
|
+
Command: [the command]
|
|
51
|
+
Risk: [what could go wrong]
|
|
52
|
+
Reversible: YES / NO / PARTIAL
|
|
53
|
+
|
|
54
|
+
Proceed? (The user must explicitly confirm)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Rules
|
|
60
|
+
|
|
61
|
+
- **Never execute a destructive command without explicit user confirmation**
|
|
62
|
+
- **Always explain what could go wrong** — don't just say "are you sure?"
|
|
63
|
+
- **Suggest safer alternatives** when they exist (e.g., `git push --force-with-lease` instead of `--force`)
|
|
64
|
+
- **The user can always override** — these are guardrails, not handcuffs
|
|
65
|
+
|
|
66
|
+
Combine with [freeze](../freeze/SKILL.md) for maximum safety, or use [guard](../guard/SKILL.md) for both at once.
|