diff --git a/.bash_profile b/.bash_profile deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/.bashrc b/.bashrc deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/.gitconfig b/.gitconfig deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/.gitignore b/.gitignore index b0c8178eba..ee5d18811f 100644 --- a/.gitignore +++ b/.gitignore @@ -11,8 +11,22 @@ node_modules .env -.vscode/ -.idea/ +.vscode +.idea + +# Empty files once committed at the root. No trailing slash, so a FILE of +# the name is ignored too. +/.bashrc +/.bash_profile +/.zshrc +/.zprofile +/.profile +/.gitconfig +/.ripgreprc +/config +/hooks +/objects +/refs build/ dist/ diff --git a/.idea b/.idea deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/.profile b/.profile deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/.ripgreprc b/.ripgreprc deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/.vscode b/.vscode deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/.zprofile b/.zprofile deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/.zshrc b/.zshrc deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/LINT_SETUP_SUMMARY.md b/LINT_SETUP_SUMMARY.md deleted file mode 100644 index 49aa8ea2b4..0000000000 --- a/LINT_SETUP_SUMMARY.md +++ /dev/null @@ -1,68 +0,0 @@ -# Linting Setup Summary - -## โœ… What's Been Set Up - -1. **ESLint Configuration** - - Backend: Airbnb style guide with customizations - - Frontend: React-app config with React-specific rules - - Both configured for auto-fixing - -2. **Auto-Fix Commands** - ```bash - npm run lint:fix # Fix both frontend and backend - npm run lint:fix:backend # Fix backend only - npm run lint:fix:frontend # Fix frontend only - ``` - -3. **Pre-commit Hook** - - Automatically runs ESLint with auto-fix on staged files - - Prevents commits if unfixable issues exist - - Uses husky + lint-staged - -4. **IDE Integration** - - VS Code settings included (`.vscode/settings.json`) - - Auto-fix on save enabled - - ESLint extension support - -5. **CI/CD Integration** - - GitHub workflow updated to use unified lint commands - - Runs on every push and pull request - -## ๐Ÿš€ Quick Start for Developers - -1. **Install dependencies** (if not already done): - ```bash - npm install - cd backend && npm install - cd ../frontend && npm install - ``` - -2. **Fix lint issues**: - ```bash - npm run lint:fix - ``` - -3. **Check for remaining issues**: - ```bash - npm run lint - ``` - -4. **Commit your changes** (pre-commit hook will run automatically): - ```bash - git add . - git commit -m "Your commit message" - ``` - -## ๐Ÿ“ Key Benefits - -- **Minimal new packages**: Only added husky and lint-staged -- **Auto-fix capability**: Most issues are fixed automatically -- **Pre-commit safety**: Prevents bad code from being committed -- **IDE integration**: Real-time feedback while coding -- **Consistent style**: Enforces project-wide code standards - -## ๐Ÿ”ง Troubleshooting - -- If pre-commit hook fails: Run `npm run lint:fix` manually -- If ESLint errors persist: Check the specific error and fix manually -- For IDE issues: Ensure ESLint extension is installed and enabled \ No newline at end of file diff --git a/UIUX_TASK_BOARD.md b/UIUX_TASK_BOARD.md deleted file mode 100644 index bca1288b48..0000000000 --- a/UIUX_TASK_BOARD.md +++ /dev/null @@ -1,150 +0,0 @@ -# UI/UX Enhancement โ€” Task Board - -**Started**: 2026-04-11 -**Worktree**: `/home/xcjam/workspace/commonly-uiux` -**Branch**: `uiux/enhance-2026-04-11` -**Coordinator**: Claude Opus 4.6 (1M) - -**Status**: โœ… Round 1 complete โ€” all 5 tracks delivered, typecheck + lint green, ready for commit & deploy. - -Status legend: โณ pending ยท ๐Ÿ”จ in-progress ยท โœ… done ยท โŒ blocked ยท ๐Ÿงช needs review ยท ๐ŸŽจ needs live smoke test - ---- - -## Scope (from user request) - -1. Agent Hub (registry) UI/UX enhancement โ€” โœ… -2. Marketplace UI/UX enhancement โ€” โœ… -3. App Integration page UI/UX enhancement โ€” โœ… (Social section reorganized; full category regroup deferred because `GlobalIntegrations.tsx` only holds X + Instagram + the global-model-policy card, not a list with categories โ€” noted in code as `TODO(ui)`) -4. Skill Marketplace with ratings/comments โ€” โœ… -5. Fix stale skill star counts + sync freshness โ€” โœ… -6. Enriched content for agent messages (emoji, memes/images) โ€” โœ… -7. PostgreSQL 30-day message retention โ€” โœ… -8. Task board UI/UX polish โ€” โœ… -9. OpenAI image endpoint wired for agent avatar generation โ€” โœ… (code landed; runtime blocked on OPENAI_API_KEY in GCP SM โ€” see Phase 2) -10. Generate nice avatars for all team agents โ€” ๐Ÿ”œ Phase 2 (script written, needs API key) -11. Remove useless "debug runtime" section from agent hub โ€” โœ… -12. Typing indicators for agents โ€” โœ… - ---- - -## Decisions - -- **Clawhub integration**: DEFERRED. Use GitHub API refresh of existing `awesome-agent-skills-index.json` instead. Smaller attack surface, tighter guardrail. -- **LiteLLM for image gen**: BYPASS. Direct OpenAI client for `/v1/images/generations`. -- **Meme storage**: Reuse existing `/api/uploads/` multer endpoint. -- **Retention default**: 30 days, configurable via `PG_MESSAGE_RETENTION_DAYS`. -- **Worktree strategy**: Single shared worktree, non-overlapping file ownership per agent โ€” worked perfectly. No merge conflicts. - ---- - -## Implementation Tracks - -### Track 1 โ€” Agent Hub Polish ยท `@hub-designer` โœ… - -- โœ… Removed Runtime Debug `` (old L3030-3129) and collapsed its wrapper Box -- โœ… Removed reset `useEffect` (old L2328-2331) -- โœ… Removed helpers `getInstalledDebugKey`, `fetchInstalledRuntimeDebug`, `handleToggleInstalledDebug`, `copyInstalledDebug` (old L830-913) -- โœ… Removed state `installedDebugExpanded`, `installedRuntimeDebug` -- โœ… Pruned imports: `Accordion`, `AccordionSummary`, `AccordionDetails`, `ExpandMoreIcon` (RefreshIcon + CopyIcon kept โ€” still used in Admin tab) -- โœ… Polished Installed tab empty state with `SmartToyOutlinedIcon` + headline + "Browse Discover" link -- โœ… Polished Discover tab header (subtitle + wider gap + flexShrink on chip) -- **Delta**: `AgentsHub.tsx` 5035 โ†’ 4884 lines (โˆ’151 net) -- **Files**: `frontend/src/components/agents/AgentsHub.tsx` - -### Track 2 โ€” ChatRoom Enhancement ยท `@chat-designer` โœ… - -**Task Board polish:** -- โœ… Typography: column headers 0.7โ†’0.75rem, letterSpacing 0.8โ†’0.4; card IDs/chips 0.68โ†’0.72rem; titles 0.8โ†’0.9rem; meta rows 0.68/0.7โ†’0.85rem -- โœ… Card padding 10ร—12 โ†’ 14ร—14; border-left 3โ†’2px; hover translate+shadow -- โœ… Tooltip wraps truncated titles (3-line clamp) -- โœ… Unicode markers replaced: `โ›”` โ†’ ``, `โ†ณ` โ†’ ``, `๐Ÿ”’` โ†’ `` -- โœ… Per-column empty states (dashed-border centered Box with `InboxOutlinedIcon`) -- โœ… Mobile drawer constrained: `min(420px, calc(100vw - 48px))` - -**Typing Indicator:** -- โœ… `AgentTypingIndicator` local component with stacked overlapping 24px avatars + animated three-dot `@keyframes typingDot` -- โœ… State `typingAgents` + ref-based 30s safety timers keyed on `agentName:instanceId` -- โœ… Pod-change cleanup effect + socket subscribe/unsubscribe on `agent_typing_start`/`agent_typing_stop` -- โœ… Rendered between message list and composer; returns `null` when empty - -**Enriched Content:** -- โœ… `node-emoji@^2.1.3` added to `frontend/package.json` -- โœ… `emojifyPreserveCode(raw)` splits on fenced ``` ``` + inline `` ` `` via regex, emojifies only prose segments (avoids corrupting code blocks). Applied at `messageType === 'text'` render site only โ€” MarkdownContent.tsx untouched, so posts/comments unaffected. -- โœ… `` IconButton in composer (between emoji picker and attach), hidden file input accepts `image/gif,image/png,image/jpeg,image/webp`, POSTs to `/api/uploads` with field name `image` (verified via `uploads.ts:38`), injects `\n![image](${url})\n` into composer on success, `CircularProgress` during upload. - -- **Files**: `frontend/src/components/ChatRoom.tsx`, `frontend/package.json` - -### Track 3 โ€” Marketplace + Skills Fix ยท `@market-designer` โœ… - -**Skills sync:** -- โœ… `backend/services/skillsRefreshService.ts` (new) โ€” fetches upstream JSON from `raw.githubusercontent.com/openclaw/skills/main/...`, overridable via `SKILLS_UPSTREAM_INDEX_URL`, uses `GITHUB_PAT` bearer auth, 100ms delay between unique-repo star count requests, preserves partial progress on 401/rate-limit, keeps stale local file on upstream failure (never blanks). Stamps `upstreamRefreshedAt` + `localRefreshedAt`. Exports `getLastRefreshAt()`. -- โœ… `backend/services/skillsCatalogService.ts` โ€” mtime-based cache invalidation + `invalidateCache()` + `getLastRefreshedAt()` exports -- โœ… `backend/services/schedulerService.ts` โ€” 6-hourly cron `0 */6 * * *` + 30s startup kick -- โœ… `backend/routes/skills.ts` `/catalog` response extended with refreshedAt timestamps - -**Skill ratings:** -- โœ… `backend/models/SkillRating.ts` (new) โ€” `skillId + userId` compound unique, rating 1-5, comment โ‰ค2000, `getAggregated()` + `getAggregatedMany()` statics -- โœ… Routes in `backend/routes/skills.ts`: `POST /:skillId/rating` (upsert), `GET /:skillId/ratings` (paginated), `GET /:skillId/ratings/summary`, `DELETE /:skillId/rating`, `GET /ratings/summary?skillIds=a,b,c` (batch) -- โœ… `frontend/src/components/skills/SkillsCatalogPage.tsx` โ€” `` on each card, detail `` with summary (avg + histogram bars), interactive rating form, comments list, "Highest rated" sort option, "Last updated X ago" indicator, manual refresh button - -**Apps Marketplace polish:** -- โœ… Hero section with gradient background, h3 headline, inline pill-shaped search, pod select, "Submit App" button -- โœ… Featured section converted to horizontal scroll strip with scroll-snap -- โœ… `AppCard.tsx` โ€” avatar 56โ†’64px, stronger hover, absolute-positioned category chip top-right, "Installed" chip bottom-right - -**Admin Integrations polish:** -- โœ… "Social" section header above X/Instagram cards -- โœ… X + Instagram edit forms wrapped in collapsed-by-default `` -- ๐Ÿ”œ Full Chat/Email/Other category grouping deferred (requires data-fetch refactor; noted as `TODO(ui)` in file) - -- **Files**: `backend/services/skillsRefreshService.ts` (new), `backend/models/SkillRating.ts` (new), `backend/services/skillsCatalogService.ts`, `backend/services/schedulerService.ts`, `backend/routes/skills.ts`, `frontend/src/components/skills/SkillsCatalogPage.tsx`, `frontend/src/components/apps/AppsMarketplacePage.tsx`, `frontend/src/components/apps/AppCard.tsx`, `frontend/src/components/admin/GlobalIntegrations.tsx` - -### Track 4 โ€” Avatar Forge ยท `@avatar-forge` โœ… - -- โœ… `openai@^4.77.0` added to `backend/package.json` (installed @ 4.104.0) -- โœ… `backend/services/openaiImageService.ts` (new) โ€” lazy client init, `gpt-image-1` โ†’ `dall-e-3` fallback, rate-limit + 5xx retry-once, typed `OpenAIImageError` kinds, cost-estimate logging, `b64_json` โ†’ URL-fetch conversion, CJS compat footer -- โœ… `backend/services/agentAvatarService.ts` โ€” three-tier provider chain OpenAI โ†’ Gemini โ†’ SVG; env toggle `AVATAR_PROVIDER=openai|gemini|auto`; existing Gemini code untouched (purely additive) -- โœ… `backend/models/User.ts` โ€” `avatarMetadata` extended with `source: 'openai'|'gemini'|'svg'|'manual'` + `model: string` -- โœ… `k8s/helm/commonly/templates/secrets/api-keys.yaml` โ€” `OPENAI_API_KEY` mapping already present (no YAML edit needed) -- โœ… `backend/scripts/generate-team-avatars.ts` (new) โ€” idempotent, TEAM array of liz/theo/nova/pixel/ops/x-curator with personality-matched prompts, resolves via `AgentIdentityService.getOrCreateAgentUser`, writes to `User.profilePicture` + `avatarMetadata`, `--force` flag, cost total -- โœ… `docs/AGENT_AVATARS.md` (new) โ€” GCP SM setup, ESO force-sync, script usage, cost table, adding new agents - -- **Files**: `backend/package.json`, `backend/services/openaiImageService.ts` (new), `backend/services/agentAvatarService.ts`, `backend/models/User.ts`, `backend/scripts/generate-team-avatars.ts` (new), `docs/AGENT_AVATARS.md` (new) - -### Track 5 โ€” Backend Infra ยท `@infra-dev` โœ… - -**Typing events:** -- โœ… `backend/services/agentTypingService.ts` (new) โ€” `bindSocketIO`, `emitAgentTypingStart`, `emitAgentTypingStop`, 60s safety timer keyed on `podId:agentName:instanceId`, structural `SocketIOLike` interface, CJS compat footer -- โœ… `backend/server.ts` โ€” binds socket.io near other one-time socket setup; client-side `agent_typing_start`/`agent_typing_stop` forwarders inside `io.on('connection')` that re-broadcast into `pod_{podId}` room -- โœ… `backend/services/agentEventService.ts` โ€” lazy `getTypingService()` + `TYPING_EVENT_TYPES` allowlist (`heartbeat`, `chat.mention`, `summary.request`, `discord.summary`, `integration.summary`, `ensemble.turn`); fire-and-forget `signalAgentTyping(event)` inside `enqueue()` after websocket push -- โœ… `backend/services/agentMessageService.ts` โ€” emits `agent_typing_stop` at the **entry** of `postMessage()` wrapped in try/catch so every return path (skip/dedupe/error/success) clears the indicator - -**PG retention:** -- โœ… `backend/services/pgRetentionService.ts` (new) โ€” daily cron `0 3 * * *` UTC, reads `PG_MESSAGE_RETENTION_DAYS` (default 30), idempotent init guard, swallows errors so cron keeps running, gated on `NODE_ENV !== 'test'` -- โœ… `backend/models/pg/Message.ts` โ€” `static async deleteOlderThan(days)` with `NOW() - $1::interval RETURNING id`, validates days > 0, returns `{ deleted: N }` -- โœ… `backend/server.ts` โ€” calls `initPgRetention()` after PG success log - -- **Files**: `backend/services/agentTypingService.ts` (new), `backend/services/pgRetentionService.ts` (new), `backend/server.ts`, `backend/services/agentEventService.ts`, `backend/services/agentMessageService.ts`, `backend/models/pg/Message.ts` - ---- - -## Integration checklist (Round 1 post-mortem) - -- [x] Review diffs from each agent โ€” 17 modified + 7 new files, no track overlaps -- [x] `cd backend && npm install openai@^4.77.0` โ€” installed @ 4.104.0 -- [x] `cd frontend && npm install node-emoji@^2.1.3` โ€” installed @ 2.2.0 -- [x] `backend && npm run tsc:check` โ€” clean -- [x] `frontend && npm run typecheck` โ€” clean -- [x] `backend && npm run lint` โ€” 865 errors ALL pre-existing (main branch baseline matches; `eslint . --ext .js` doesn't cover my `.ts` changes anyway) -- [x] `frontend && npm run lint` โ€” 104 pre-existing JSX-extension warnings from Apr 8 `.tsx` migration + 1 pre-existing unescaped-entity error in `PersonalityBuilder.tsx` (untouched by this work) -- [x] Zero new lint errors introduced by Round 1 -- [ ] Commit tracks as coherent chunks -- [ ] Report to user - -## Phase 2 (blocked on external / user decision) - -- **Generate actual avatars for team agents**: blocked on `OPENAI_API_KEY` in GCP Secret Manager. Commands in `docs/AGENT_AVATARS.md`. Once key lands: `npx ts-node backend/scripts/generate-team-avatars.ts` โ†’ images flow into `User.profilePicture`. -- **Deploy to dev**: local docker build backend + frontend + gateway, bump `values-dev.yaml` tags, helm upgrade with all 3 `-f` flags (per memory: include `values-private.yaml`). Restart-safe: no breaking schema changes, no API removals. -- **MCP Playwright smoke test**: navigate `app-dev.commonly.me/agents`, `/skills`, `/apps`, `/pods/` โ€” confirm (a) no runtime debug accordion, (b) skills page shows ratings, (c) apps hero renders, (d) agent hub discover polish, (e) chat room empty state + typing indicator wire (no server-side stimulus yet). -- **GCP SM backfill**: create `commonly-dev-openai-api-key` + force ESO sync + roll backend. diff --git a/cloudbuild.backend.yaml b/cloudbuild.backend.yaml deleted file mode 100644 index ddbc962ba1..0000000000 --- a/cloudbuild.backend.yaml +++ /dev/null @@ -1,14 +0,0 @@ -steps: - - name: 'gcr.io/cloud-builders/docker' - dir: 'backend' - args: - - 'build' - - '-t' - - '${_IMAGE}' - - '.' - -images: - - '${_IMAGE}' - -substitutions: - _IMAGE: '${_AR_HOST}/${PROJECT_ID}/docker/commonly-backend:latest' diff --git a/cloudbuild.frontend.yaml b/cloudbuild.frontend.yaml deleted file mode 100644 index 855a5db69d..0000000000 --- a/cloudbuild.frontend.yaml +++ /dev/null @@ -1,19 +0,0 @@ -steps: - - name: 'gcr.io/cloud-builders/docker' - dir: 'frontend' - args: - - 'build' - - '--build-arg' - - 'VITE_API_URL=${_REACT_APP_API_URL}' - - '--build-arg' - - 'REACT_APP_API_URL=${_REACT_APP_API_URL}' - - '-t' - - '${_IMAGE}' - - '.' - -images: - - '${_IMAGE}' - -substitutions: - _REACT_APP_API_URL: 'https://api.commonly.me' - _IMAGE: '${_AR_HOST}/${PROJECT_ID}/docker/commonly-frontend:latest' diff --git a/config b/config deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/discord-logo.png b/discord-logo.png deleted file mode 100644 index 48e52246f6..0000000000 Binary files a/discord-logo.png and /dev/null differ diff --git a/docs/deployment/DEPLOYMENT.md b/docs/deployment/DEPLOYMENT.md index 3e55d15cab..d4b5052345 100644 --- a/docs/deployment/DEPLOYMENT.md +++ b/docs/deployment/DEPLOYMENT.md @@ -113,11 +113,7 @@ Notes: - The repository also ships `.env.example` with these local defaults; `./dev.sh up` will create `.env` from it automatically if missing. - AI keys are optional for boot. If `GEMINI_API_KEY`, `OPENAI_API_KEY`, and `OPENROUTER_API_KEY` are all unset, the app still starts but AI-backed features will stay limited until you add a key and restart. -2. Download the CA certificate only if you are using external PostgreSQL: - -```bash -node download-ca.js -``` +2. Only if you are using external PostgreSQL with SSL: put your provider's CA certificate at `./ca.pem` and set `PG_SSL_ENABLED=true`. `docker-compose.yml` mounts that file at `/app/ca.pem`, the path it sets as `PG_SSL_CA_PATH`. ### Step 3: Build and Start the Containers @@ -168,10 +164,7 @@ Note: In development, the backend container will install dependencies on first b 2. Place the `.env` file in the project root directory. -3. Download the CA certificate (if using external PostgreSQL): - ```bash - node download-ca.js - ``` +3. If you use external PostgreSQL with SSL, put your provider's CA certificate at `./ca.pem` and set `PG_SSL_ENABLED=true`. `docker-compose.yml` mounts that file at `/app/ca.pem`, the path it sets as `PG_SSL_CA_PATH`. ### Step 3: Configure HTTPS (Optional but Recommended) diff --git a/docs/runbooks/domain-migration-commonly-me.md b/docs/runbooks/domain-migration-commonly-me.md index ee859eb923..1fd73cd0c3 100644 --- a/docs/runbooks/domain-migration-commonly-me.md +++ b/docs/runbooks/domain-migration-commonly-me.md @@ -38,8 +38,10 @@ Move the dev cluster's public surface from `app-dev` / `api-dev` to the apex `backendUrl`, ingress `hosts.{frontend,backend,litellm}.host`, and `cloudflared.hostnames` (also deduped a repeated `api-dev` entry and dropped a stray `app.commonly.me`). -- `.github/workflows/deploy-dev.yml` + `cloudbuild.frontend.yaml` โ€” - `REACT_APP_API_URL=https://api.commonly.me` (frontend build arg). +- `.github/workflows/deploy-dev.yml` โ€” + `REACT_APP_API_URL=https://api.commonly.me` (frontend build arg). At the + time `cloudbuild.frontend.yaml` carried the same arg; that file was removed + in #2861, since Deploy Dev builds every image. - `backend/server.ts` โ€” CORS fallback default + a doc comment. - `frontend/src/v2/components/V2AgentBYO.tsx` โ€” BYO snippet API-URL fallback. (The hostname-derivation regex correctly falls through to this fallback for @@ -92,6 +94,6 @@ Move the dev cluster's public surface from `app-dev` / `api-dev` to the apex add the old hosts back as ingress `aliases` on each service and keep them in `cloudflared.hostnames` until step 5 โ€” say the word and I'll prepare that shape. - **Pre-existing (not from this branch):** `cloudbuild.frontend.yaml` line 19 - hard-codes a GCP project id + AR path in the public repo. Flagging per the - no-infra-leak-in-public-repo rule โ€” worth moving to a substitution/secret in a - separate cleanup, independent of this migration. + hard-coded a GCP project id + AR path in the public repo, against the + no-infra-leak-in-public-repo rule. Resolved: the file now uses + substitutions, and was then removed in #2861. diff --git a/download-ca.js b/download-ca.js deleted file mode 100644 index 0bfed760da..0000000000 --- a/download-ca.js +++ /dev/null @@ -1,33 +0,0 @@ -const fs = require('fs'); -const https = require('https'); -const path = require('path'); - -// Aiven CA certificate URL -const CA_URL = 'https://api.aiven.io/ca.pem'; -const OUTPUT_PATH = path.join(__dirname, 'ca.pem'); - -console.log(`Downloading CA certificate from ${CA_URL} to ${OUTPUT_PATH}...`); - -https.get(CA_URL, (res) => { - if (res.statusCode !== 200) { - console.error(`Failed to download CA certificate: ${res.statusCode} ${res.statusMessage}`); - process.exit(1); - } - - const fileStream = fs.createWriteStream(OUTPUT_PATH); - res.pipe(fileStream); - - fileStream.on('finish', () => { - console.log(`CA certificate downloaded successfully to ${OUTPUT_PATH}`); - fileStream.close(); - }); - - fileStream.on('error', (err) => { - console.error(`Error writing CA certificate to file: ${err.message}`); - fs.unlinkSync(OUTPUT_PATH); - process.exit(1); - }); -}).on('error', (err) => { - console.error(`Error downloading CA certificate: ${err.message}`); - process.exit(1); -}); \ No newline at end of file diff --git a/hooks b/hooks deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/objects b/objects deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pod-chat-mobile.png b/pod-chat-mobile.png deleted file mode 100644 index 03c4366d96..0000000000 Binary files a/pod-chat-mobile.png and /dev/null differ diff --git a/refs b/refs deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/run-cuz-provision.sh b/run-cuz-provision.sh deleted file mode 100755 index a30ac1e76a..0000000000 --- a/run-cuz-provision.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -JWT_FILE="${1:-commonly-default-jwt.txt}" -POD_ID="698482ab827d253a2051605e" -AGENT_NAME="cuz" -INSTANCE_ID="cuz" -API_BASE="https://api-dev.commonly.me" - -if [[ ! -f "$JWT_FILE" ]]; then - echo "JWT file not found: $JWT_FILE" >&2 - exit 1 -fi - -JWT=$(cat "$JWT_FILE") -if [[ -z "$JWT" ]]; then - echo "JWT file is empty: $JWT_FILE" >&2 - exit 1 -fi - -echo "== Runtime tokens ==" -curl -sS -H "Authorization: Bearer $JWT" \ - "$API_BASE/api/registry/pods/$POD_ID/agents/$AGENT_NAME/runtime-tokens?instanceId=$INSTANCE_ID" - -echo - -echo "== Force provision ==" -curl -sS -H "Authorization: Bearer $JWT" \ - -H "Content-Type: application/json" \ - -d "{\"instanceId\":\"$INSTANCE_ID\",\"includeUserToken\":true,\"force\":true}" \ - "$API_BASE/api/registry/pods/$POD_ID/agents/$AGENT_NAME/provision" - -echo