2025-11-24 11:23:15 +01:00
|
|
|
{
|
2026-02-11 23:38:34 -08:00
|
|
|
"name": "ironclaw",
|
2026-02-21 16:21:48 -08:00
|
|
|
"version": "2026.2.15-1.9",
|
2026-02-11 23:38:34 -08:00
|
|
|
"description": "AI-powered CRM platform with multi-channel agent gateway, DuckDB workspace, and knowledge management",
|
2026-01-31 21:13:13 +09:00
|
|
|
"keywords": [],
|
2026-02-16 05:38:11 +01:00
|
|
|
"homepage": "https://github.com/openclaw/openclaw#readme",
|
|
|
|
|
"bugs": {
|
|
|
|
|
"url": "https://github.com/openclaw/openclaw/issues"
|
|
|
|
|
},
|
2026-01-31 21:13:13 +09:00
|
|
|
"license": "MIT",
|
|
|
|
|
"author": "",
|
2026-02-16 05:38:11 +01:00
|
|
|
"repository": {
|
|
|
|
|
"type": "git",
|
|
|
|
|
"url": "git+https://github.com/openclaw/openclaw.git"
|
|
|
|
|
},
|
2025-11-24 11:23:15 +01:00
|
|
|
"bin": {
|
2026-02-11 23:38:34 -08:00
|
|
|
"ironclaw": "openclaw.mjs"
|
2025-11-24 11:23:15 +01:00
|
|
|
},
|
2026-02-16 05:38:11 +01:00
|
|
|
"directories": {
|
|
|
|
|
"doc": "docs",
|
|
|
|
|
"test": "test"
|
|
|
|
|
},
|
2025-12-21 03:48:23 +01:00
|
|
|
"files": [
|
Web app: switch to Next.js standalone build for npm packaging
Ship a self-contained standalone server with the npm package so
`npm i -g ironclaw` can serve the web UI without runtime `npm install`
or `next build`. This eliminates the fragile first-boot build step
and cuts the cold-start time for the gateway web app.
Changes:
- next.config.ts: enable `output: "standalone"` and set
`outputFileTracingRoot` to the monorepo root so pnpm workspace
deps are traced correctly. Remove the now-unnecessary manual
webpack externals for Node.js built-ins.
- package.json: update `files` to ship only the standalone build
output, static assets, and public dir (instead of the entire
`apps/web/` tree). Add `web:build` and `web:prepack` to the
`prepack` script so the standalone server is built and its
static/public assets are copied into place before publish. Bump
version to 2026.2.10-1.5.
- server-web-app.ts: rewrite the web app lifecycle to prefer the
pre-built standalone `server.js` in production. Add
`resolveStandaloneServerJs`, `hasStandaloneBuild`,
`hasLegacyNextBuild`, and `isInWorkspace` helpers. In dev
workspaces, fall back to building on-the-fly or legacy
`next start`. Export key functions for testability.
- server-web-app.test.ts: add comprehensive unit tests covering
path resolution, standalone/legacy build detection,
ensureWebAppBuilt scenarios (skip, disabled, dev, standalone,
legacy, missing), startWebAppIfEnabled (skip, disabled, null
config, missing dir, standalone start, missing build error,
default port, graceful stop).
- workspace-sidebar.tsx: update sidebar branding to "Ironclaw".
Published as ironclaw@2026.2.10-1.5.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 19:03:01 -08:00
|
|
|
"apps/web/.next/standalone/",
|
|
|
|
|
"apps/web/.next/static/",
|
|
|
|
|
"apps/web/public/",
|
2026-01-31 20:20:17 -06:00
|
|
|
"CHANGELOG.md",
|
|
|
|
|
"LICENSE",
|
|
|
|
|
"openclaw.mjs",
|
|
|
|
|
"README-header.png",
|
|
|
|
|
"README.md",
|
2026-02-13 01:52:09 +08:00
|
|
|
"assets/",
|
|
|
|
|
"dist/",
|
|
|
|
|
"docs/",
|
|
|
|
|
"extensions/",
|
2026-02-03 22:04:17 +09:00
|
|
|
"skills/"
|
2025-12-21 03:48:23 +01:00
|
|
|
],
|
2026-01-31 21:13:13 +09:00
|
|
|
"type": "module",
|
|
|
|
|
"main": "dist/index.js",
|
|
|
|
|
"exports": {
|
|
|
|
|
".": "./dist/index.js",
|
2026-02-12 16:31:48 +08:00
|
|
|
"./plugin-sdk": {
|
|
|
|
|
"types": "./dist/plugin-sdk/index.d.ts",
|
|
|
|
|
"default": "./dist/plugin-sdk/index.js"
|
|
|
|
|
},
|
2026-02-14 12:42:11 +00:00
|
|
|
"./plugin-sdk/account-id": {
|
|
|
|
|
"types": "./dist/plugin-sdk/account-id.d.ts",
|
|
|
|
|
"default": "./dist/plugin-sdk/account-id.js"
|
|
|
|
|
},
|
2026-01-31 21:13:13 +09:00
|
|
|
"./cli-entry": "./openclaw.mjs"
|
|
|
|
|
},
|
2025-11-24 11:23:15 +01:00
|
|
|
"scripts": {
|
2026-01-31 23:19:40 +09:00
|
|
|
"android:assemble": "cd apps/android && ./gradlew :app:assembleDebug",
|
|
|
|
|
"android:install": "cd apps/android && ./gradlew :app:installDebug",
|
|
|
|
|
"android:run": "cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity",
|
|
|
|
|
"android:test": "cd apps/android && ./gradlew :app:testDebugUnitTest",
|
2026-02-16 12:41:08 +01:00
|
|
|
"build": "pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts",
|
2026-02-06 18:43:11 -08:00
|
|
|
"build:plugin-sdk:dts": "tsc -p tsconfig.plugin-sdk.dts.json",
|
2026-01-31 23:19:40 +09:00
|
|
|
"canvas:a2ui:bundle": "bash scripts/bundle-a2ui.sh",
|
2026-02-09 17:52:51 -08:00
|
|
|
"check": "pnpm format:check && pnpm tsgo && pnpm lint",
|
2026-02-09 18:30:05 -08:00
|
|
|
"check:docs": "pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links",
|
2026-01-31 23:19:40 +09:00
|
|
|
"check:loc": "node --import tsx scripts/check-ts-max-loc.ts --max 500",
|
2026-02-21 01:29:20 -05:00
|
|
|
"deadcode:ci": "pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused",
|
|
|
|
|
"deadcode:knip": "pnpm dlx knip --no-progress",
|
|
|
|
|
"deadcode:report": "pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused",
|
|
|
|
|
"deadcode:report:ci:knip": "mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true",
|
|
|
|
|
"deadcode:report:ci:ts-prune": "mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true",
|
|
|
|
|
"deadcode:report:ci:ts-unused": "mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true",
|
|
|
|
|
"deadcode:ts-prune": "pnpm dlx ts-prune src extensions scripts",
|
|
|
|
|
"deadcode:ts-unused": "pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount",
|
2026-01-18 18:21:13 +00:00
|
|
|
"dev": "node scripts/run-node.mjs",
|
2026-01-18 18:46:18 +00:00
|
|
|
"docs:bin": "node scripts/build-docs-list.mjs",
|
2026-02-07 15:40:35 -05:00
|
|
|
"docs:check-links": "node scripts/docs-link-audit.mjs",
|
2026-01-31 23:19:40 +09:00
|
|
|
"docs:dev": "cd docs && mint dev",
|
|
|
|
|
"docs:list": "node scripts/docs-list.js",
|
2026-02-21 15:08:24 +01:00
|
|
|
"docs:spellcheck": "bash scripts/docs-spellcheck.sh",
|
|
|
|
|
"docs:spellcheck:fix": "bash scripts/docs-spellcheck.sh --write",
|
2026-02-09 17:09:55 -08:00
|
|
|
"format": "oxfmt --write",
|
2026-01-31 23:19:40 +09:00
|
|
|
"format:all": "pnpm format && pnpm format:swift",
|
2026-02-09 17:09:55 -08:00
|
|
|
"format:check": "oxfmt --check",
|
2026-02-19 01:31:33 -08:00
|
|
|
"format:diff": "oxfmt --write && git --no-pager diff",
|
2026-02-09 17:09:55 -08:00
|
|
|
"format:docs": "git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write",
|
|
|
|
|
"format:docs:check": "git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check",
|
2026-02-19 01:31:33 -08:00
|
|
|
"format:fix": "oxfmt --write",
|
2026-01-31 23:19:40 +09:00
|
|
|
"format:swift": "swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources",
|
2026-01-30 03:15:10 +01:00
|
|
|
"gateway:dev": "OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway",
|
|
|
|
|
"gateway:dev:reset": "OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset",
|
2026-01-31 23:19:40 +09:00
|
|
|
"gateway:watch": "node scripts/watch-node.mjs gateway --force",
|
2026-02-18 03:16:10 +08:00
|
|
|
"ios:build": "bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'",
|
|
|
|
|
"ios:gen": "bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'",
|
|
|
|
|
"ios:open": "bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'",
|
|
|
|
|
"ios:run": "bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'",
|
2026-02-03 21:44:54 +09:00
|
|
|
"lint": "oxlint --type-aware",
|
2026-01-09 19:38:48 +00:00
|
|
|
"lint:all": "pnpm lint && pnpm lint:swift",
|
2026-02-06 09:14:36 -05:00
|
|
|
"lint:docs": "pnpm dlx markdownlint-cli2",
|
|
|
|
|
"lint:docs:fix": "pnpm dlx markdownlint-cli2 --fix",
|
2026-02-09 17:09:55 -08:00
|
|
|
"lint:fix": "oxlint --type-aware --fix && pnpm format",
|
2026-01-31 23:19:40 +09:00
|
|
|
"lint:swift": "swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)",
|
|
|
|
|
"mac:open": "open dist/OpenClaw.app",
|
|
|
|
|
"mac:package": "bash scripts/package-mac-app.sh",
|
|
|
|
|
"mac:restart": "bash scripts/restart-mac.sh",
|
|
|
|
|
"moltbot:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
|
|
|
|
|
"openclaw": "node scripts/run-node.mjs",
|
|
|
|
|
"openclaw:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
|
|
|
|
|
"plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts",
|
Web app: switch to Next.js standalone build for npm packaging
Ship a self-contained standalone server with the npm package so
`npm i -g ironclaw` can serve the web UI without runtime `npm install`
or `next build`. This eliminates the fragile first-boot build step
and cuts the cold-start time for the gateway web app.
Changes:
- next.config.ts: enable `output: "standalone"` and set
`outputFileTracingRoot` to the monorepo root so pnpm workspace
deps are traced correctly. Remove the now-unnecessary manual
webpack externals for Node.js built-ins.
- package.json: update `files` to ship only the standalone build
output, static assets, and public dir (instead of the entire
`apps/web/` tree). Add `web:build` and `web:prepack` to the
`prepack` script so the standalone server is built and its
static/public assets are copied into place before publish. Bump
version to 2026.2.10-1.5.
- server-web-app.ts: rewrite the web app lifecycle to prefer the
pre-built standalone `server.js` in production. Add
`resolveStandaloneServerJs`, `hasStandaloneBuild`,
`hasLegacyNextBuild`, and `isInWorkspace` helpers. In dev
workspaces, fall back to building on-the-fly or legacy
`next start`. Export key functions for testability.
- server-web-app.test.ts: add comprehensive unit tests covering
path resolution, standalone/legacy build detection,
ensureWebAppBuilt scenarios (skip, disabled, dev, standalone,
legacy, missing), startWebAppIfEnabled (skip, disabled, null
config, missing dir, standalone start, missing build error,
default port, graceful stop).
- workspace-sidebar.tsx: update sidebar branding to "Ironclaw".
Published as ironclaw@2026.2.10-1.5.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 19:03:01 -08:00
|
|
|
"prepack": "pnpm build && pnpm ui:build && pnpm web:build && pnpm web:prepack",
|
2026-02-15 03:56:31 +01:00
|
|
|
"prepare": "command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0",
|
2026-01-31 23:19:40 +09:00
|
|
|
"protocol:check": "pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift",
|
|
|
|
|
"protocol:gen": "node --import tsx scripts/protocol-gen.ts",
|
|
|
|
|
"protocol:gen:swift": "node --import tsx scripts/protocol-gen-swift.ts",
|
|
|
|
|
"release:check": "node --import tsx scripts/release-check.ts",
|
|
|
|
|
"start": "node scripts/run-node.mjs",
|
2026-02-08 22:21:20 -08:00
|
|
|
"tail": "tail -f ~/.openclaw/agents/*/sessions/*.jsonl",
|
2026-01-23 07:34:50 +00:00
|
|
|
"test": "node scripts/test-parallel.mjs",
|
2026-01-31 23:19:40 +09:00
|
|
|
"test:all": "pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all",
|
2026-02-15 04:20:08 +00:00
|
|
|
"test:coverage": "vitest run --config vitest.unit.config.ts --coverage",
|
2026-01-31 23:19:40 +09:00
|
|
|
"test:docker:all": "pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup",
|
|
|
|
|
"test:docker:cleanup": "bash scripts/test-cleanup-docker.sh",
|
|
|
|
|
"test:docker:doctor-switch": "bash scripts/e2e/doctor-install-switch-docker.sh",
|
2026-01-10 04:14:28 +00:00
|
|
|
"test:docker:gateway-network": "bash scripts/e2e/gateway-network-docker.sh",
|
2026-01-10 03:06:07 +00:00
|
|
|
"test:docker:live-gateway": "bash scripts/test-live-gateway-models-docker.sh",
|
2026-01-31 23:19:40 +09:00
|
|
|
"test:docker:live-models": "bash scripts/test-live-models-docker.sh",
|
|
|
|
|
"test:docker:onboard": "bash scripts/e2e/onboard-docker.sh",
|
2026-01-11 12:21:45 +00:00
|
|
|
"test:docker:plugins": "bash scripts/e2e/plugins-docker.sh",
|
2026-01-31 23:19:40 +09:00
|
|
|
"test:docker:qr": "bash scripts/e2e/qr-import-docker.sh",
|
|
|
|
|
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
2026-02-07 08:27:50 +00:00
|
|
|
"test:fast": "vitest run --config vitest.unit.config.ts",
|
2026-01-31 23:19:40 +09:00
|
|
|
"test:force": "node --import tsx scripts/test-force.ts",
|
2026-01-11 10:20:50 +00:00
|
|
|
"test:install:e2e": "bash scripts/test-install-sh-e2e-docker.sh",
|
2026-01-30 03:15:10 +01:00
|
|
|
"test:install:e2e:anthropic": "OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh",
|
2026-01-31 23:19:40 +09:00
|
|
|
"test:install:e2e:openai": "OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh",
|
|
|
|
|
"test:install:smoke": "bash scripts/test-install-sh-docker.sh",
|
|
|
|
|
"test:live": "OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts",
|
2026-02-15 07:40:13 -06:00
|
|
|
"test:macmini": "OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs",
|
2026-01-31 23:19:40 +09:00
|
|
|
"test:ui": "pnpm --dir ui test",
|
2026-02-17 13:02:38 +00:00
|
|
|
"test:voicecall:closedloop": "vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1",
|
2026-01-31 23:19:40 +09:00
|
|
|
"test:watch": "vitest",
|
test: add comprehensive workspace test suite and deploy pre-flight checks
- Profile management: discoverProfiles, getEffectiveProfile precedence,
setUIActiveProfile, resolveWebChatDir, workspace registry (32 tests)
- Workspace init API: creation, bootstrap seeding, custom paths,
validation, idempotency (13 tests)
- Profile switch API: GET/POST profiles, validation, default reset (10 tests)
- Chat isolation: profile-scoped chat dirs, session isolation (7 tests)
- LLM context awareness: bootstrap loading, subagent filtering,
resolveBootstrapContextForRun content isolation (15 unit + 5 live)
- Subagent streaming: registerSubagent, event replay, persistence,
ensureRegisteredFromDisk, fan-out (24 unit + 5 live)
- deploy.sh: add --skip-tests flag, pnpm test + web:build pre-flight,
auto git commit/push of version bump after publish
- package.json: add test:workspace and test:workspace:live scripts
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 15:37:59 -08:00
|
|
|
"test:workspace": "vitest run --config vitest.unit.config.ts -- workspace-profiles workspace-chat-isolation workspace-context-awareness subagent-runs && pnpm --dir apps/web vitest run -- workspace-profiles workspace-chat-isolation subagent-runs route.test",
|
|
|
|
|
"test:workspace:live": "LIVE=1 vitest run --config vitest.live.config.ts -- workspace-context-awareness && LIVE=1 pnpm --dir apps/web vitest run -- subagent-streaming.live",
|
2026-02-09 11:16:19 -08:00
|
|
|
"tsgo:test": "tsgo -p tsconfig.test.json",
|
2026-01-31 23:19:40 +09:00
|
|
|
"tui": "node scripts/run-node.mjs tui",
|
|
|
|
|
"tui:dev": "OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui",
|
|
|
|
|
"ui:build": "node scripts/ui.js build",
|
|
|
|
|
"ui:dev": "node scripts/ui.js dev",
|
2026-02-06 15:28:35 -08:00
|
|
|
"ui:install": "node scripts/ui.js install",
|
|
|
|
|
"web:build": "pnpm --dir apps/web build",
|
2026-02-08 22:21:20 -08:00
|
|
|
"web:dev": "pnpm --dir apps/web dev",
|
Web app: switch to Next.js standalone build for npm packaging
Ship a self-contained standalone server with the npm package so
`npm i -g ironclaw` can serve the web UI without runtime `npm install`
or `next build`. This eliminates the fragile first-boot build step
and cuts the cold-start time for the gateway web app.
Changes:
- next.config.ts: enable `output: "standalone"` and set
`outputFileTracingRoot` to the monorepo root so pnpm workspace
deps are traced correctly. Remove the now-unnecessary manual
webpack externals for Node.js built-ins.
- package.json: update `files` to ship only the standalone build
output, static assets, and public dir (instead of the entire
`apps/web/` tree). Add `web:build` and `web:prepack` to the
`prepack` script so the standalone server is built and its
static/public assets are copied into place before publish. Bump
version to 2026.2.10-1.5.
- server-web-app.ts: rewrite the web app lifecycle to prefer the
pre-built standalone `server.js` in production. Add
`resolveStandaloneServerJs`, `hasStandaloneBuild`,
`hasLegacyNextBuild`, and `isInWorkspace` helpers. In dev
workspaces, fall back to building on-the-fly or legacy
`next start`. Export key functions for testability.
- server-web-app.test.ts: add comprehensive unit tests covering
path resolution, standalone/legacy build detection,
ensureWebAppBuilt scenarios (skip, disabled, dev, standalone,
legacy, missing), startWebAppIfEnabled (skip, disabled, null
config, missing dir, standalone start, missing build error,
default port, graceful stop).
- workspace-sidebar.tsx: update sidebar branding to "Ironclaw".
Published as ironclaw@2026.2.10-1.5.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 19:03:01 -08:00
|
|
|
"web:install": "pnpm --dir apps/web install",
|
2026-02-12 20:02:17 -08:00
|
|
|
"web:prepack": "cp -r apps/web/public apps/web/.next/standalone/apps/web/public && cp -r apps/web/.next/static apps/web/.next/standalone/apps/web/.next/static && bash scripts/standalone-hoist-pnpm.sh"
|
2025-11-24 11:23:15 +01:00
|
|
|
},
|
|
|
|
|
"dependencies": {
|
2026-02-06 09:11:31 +09:00
|
|
|
"@agentclientprotocol/sdk": "0.14.1",
|
2026-01-31 22:32:11 -08:00
|
|
|
"@ai-sdk/amazon-bedrock": "^3.0.0",
|
2026-02-08 22:21:20 -08:00
|
|
|
"@ai-sdk/anthropic": "^2.0.0",
|
2026-01-31 22:32:11 -08:00
|
|
|
"@ai-sdk/azure": "^2.0.0",
|
|
|
|
|
"@ai-sdk/gateway": "^2.0.0",
|
2026-02-08 22:21:20 -08:00
|
|
|
"@ai-sdk/google": "^2.0.0",
|
2026-01-31 22:32:11 -08:00
|
|
|
"@ai-sdk/groq": "^2.0.0",
|
|
|
|
|
"@ai-sdk/mistral": "^2.0.0",
|
2026-02-08 22:21:20 -08:00
|
|
|
"@ai-sdk/openai": "^2.0.0",
|
2026-01-31 22:32:11 -08:00
|
|
|
"@ai-sdk/openai-compatible": "^1.0.0",
|
|
|
|
|
"@ai-sdk/provider": "^2.0.0",
|
|
|
|
|
"@ai-sdk/provider-utils": "^3.0.0",
|
2026-02-08 22:21:20 -08:00
|
|
|
"@ai-sdk/xai": "^2.0.0",
|
2026-02-14 21:02:47 +01:00
|
|
|
"@aws-sdk/client-bedrock": "^3.990.0",
|
2026-02-09 09:51:59 +09:00
|
|
|
"@buape/carbon": "0.14.0",
|
2026-02-13 09:43:41 +09:00
|
|
|
"@clack/prompts": "^1.0.1",
|
2026-02-21 14:35:10 +01:00
|
|
|
"@discordjs/opus": "^0.10.0",
|
2026-02-20 16:06:07 -06:00
|
|
|
"@discordjs/voice": "^0.19.0",
|
2026-01-07 05:34:37 +00:00
|
|
|
"@grammyjs/runner": "^2.0.3",
|
2026-01-02 23:47:28 +01:00
|
|
|
"@grammyjs/transformer-throttler": "^1.2.1",
|
2026-02-09 09:51:59 +09:00
|
|
|
"@homebridge/ciao": "^1.3.5",
|
2026-01-25 07:22:36 -05:00
|
|
|
"@line/bot-sdk": "^10.6.0",
|
2026-01-17 04:57:04 +00:00
|
|
|
"@lydell/node-pty": "1.2.0-beta.3",
|
2026-02-19 22:04:33 -06:00
|
|
|
"@mariozechner/pi-agent-core": "0.54.0",
|
|
|
|
|
"@mariozechner/pi-ai": "0.54.0",
|
|
|
|
|
"@mariozechner/pi-coding-agent": "0.54.0",
|
|
|
|
|
"@mariozechner/pi-tui": "0.54.0",
|
2026-01-16 23:17:55 +00:00
|
|
|
"@mozilla/readability": "^0.6.0",
|
2026-02-08 22:21:20 -08:00
|
|
|
"@openrouter/ai-sdk-provider": "^2.1.1",
|
2026-01-31 16:25:44 +09:00
|
|
|
"@sinclair/typebox": "0.34.48",
|
2026-01-05 05:27:58 +01:00
|
|
|
"@slack/bolt": "^4.6.0",
|
2026-02-14 21:02:47 +01:00
|
|
|
"@slack/web-api": "^7.14.1",
|
2025-12-07 17:44:37 +01:00
|
|
|
"@whiskeysockets/baileys": "7.0.0-rc.9",
|
2026-02-08 22:21:20 -08:00
|
|
|
"ai": "^6.0.66",
|
2026-02-14 21:02:47 +01:00
|
|
|
"ajv": "^8.18.0",
|
2025-11-24 11:59:10 +01:00
|
|
|
"chalk": "^5.6.2",
|
2025-12-20 22:44:58 +00:00
|
|
|
"chokidar": "^5.0.0",
|
feat(tui): add syntax highlighting for code blocks
Add syntax highlighting to markdown code blocks in the TUI using
cli-highlight with a VS Code Dark-inspired color theme.
Features:
- 191 languages supported via highlight.js
- Auto-detection fallback for unknown languages
- Graceful fallback to plain styling on errors
- VS Code Dark-inspired color palette
Colors:
- Purple: keywords (const, function, if, etc.)
- Teal: built-ins (console, Math, print, etc.)
- Orange: strings
- Green: numbers, comments
- Yellow: function names
- Blue: literals (true, false, null)
- Red: diff deletions
- Light blue: variables, parameters
🤖 AI-assisted (Claude) - fully tested locally
2026-01-18 16:24:14 -08:00
|
|
|
"cli-highlight": "^2.1.11",
|
2026-01-31 06:40:45 +01:00
|
|
|
"commander": "^14.0.3",
|
2026-02-02 11:03:43 +09:00
|
|
|
"croner": "^10.0.1",
|
2026-02-21 14:35:10 +01:00
|
|
|
"discord-api-types": "^0.38.40",
|
2026-02-13 09:43:41 +09:00
|
|
|
"dotenv": "^17.3.1",
|
2025-12-07 18:49:55 +01:00
|
|
|
"express": "^5.2.1",
|
2026-01-05 05:27:58 +01:00
|
|
|
"file-type": "^21.3.0",
|
Ironclaw rebrand: new identity, animated CLI banner, and iron palette
Rebrand the project from the OpenClaw/Lobster identity to Ironclaw with
a new iron-metallic visual language across CLI and web UI.
## CLI identity
- Rename default CLI name from `openclaw` to `ironclaw` (keep `openclaw`
in KNOWN_CLI_NAMES and regex for backward compat)
- Set process.title to `ironclaw`; update all `[openclaw]` log prefixes
to `[ironclaw]`
- Add `IRONCLAW_*` env var checks (IRONCLAW_HIDE_BANNER,
IRONCLAW_NO_RESPAWN, IRONCLAW_NODE_OPTIONS_READY,
IRONCLAW_TAGLINE_INDEX) with fallback to legacy `OPENCLAW_*` variants
## Animated ASCII banner
- Replace the old lobster block-art with a figlet "ANSI Shadow" font
IRONCLAW ASCII wordmark
- Add `gradient-string` dependency for terminal gradient rendering
- Implement iron shimmer animation: a bright highlight sweeps across the
ASCII art (~2.5 s at 12 fps, 3 full gradient cycles) using a rotating
iron-to-silver color array
- Make `emitCliBanner` async to support the animation; update all call
sites (preaction hook, route, run-main) to await it
- Move banner emission earlier in `runCli()` so it appears for all
invocations (bare command, subcommands, help) with the existing
bannerEmitted guard preventing double-emission
## Iron palette and theme
- Rename LOBSTER_PALETTE → IRON_PALETTE in `src/terminal/palette.ts`
with new cool-steel color tokens (steel grey accent, bright silver
highlight, dark iron dim, steel bl info)
- Re-export LOBSTER_PALETTE as backward-compatible alias
- Update `src/terminal/theme.ts` to import and use IRON_PALETTE
## Tagline cleanup
- Remove lobster-themed, Apple-specific, and platform-joke taglines
- Fix smart-quote and em-dash formatting across remaining taglines
- Add "Holiday taglines" comment grouping for date-gated entries
## Web UI
- Add `framer-motion`, `fuse.js`, and `next-themes` to web app deps
- Add custom font files: Bookerly (regular/bold/italic), SpaceGrotesk
(light/regular/medium/semibold/bold), FoundationTitlesHand
- Update chat panel labels: "OpenClaw Chat" → "Ironclaw Chat",
"Message OpenClaw..." → "Message Ironclaw..."
- Update sidebar header: "OpenClaw Dench" → "Ironclaw"
- CSS formatting cleanup: expand single-lins, add consistent
blank lines between selector blocks, normalize child combinator
spacing (li > ul → li>ul)
2026-02-11 23:26:05 -08:00
|
|
|
"gradient-string": "^3.0.0",
|
2026-02-10 08:52:07 +09:00
|
|
|
"grammy": "^1.40.0",
|
2026-02-09 09:51:59 +09:00
|
|
|
"hono": "4.11.9",
|
2026-02-06 20:27:34 +08:00
|
|
|
"https-proxy-agent": "^7.0.6",
|
2026-01-11 12:11:12 +00:00
|
|
|
"jiti": "^2.6.1",
|
2025-11-24 11:23:15 +01:00
|
|
|
"json5": "^2.2.3",
|
2026-01-17 07:08:04 +00:00
|
|
|
"jszip": "^3.10.1",
|
2026-01-16 23:17:55 +00:00
|
|
|
"linkedom": "^0.18.12",
|
2026-02-21 02:46:31 -05:00
|
|
|
"long": "^5.3.2",
|
2026-02-12 09:14:48 +09:00
|
|
|
"markdown-it": "^14.1.1",
|
2026-02-05 19:36:36 +09:00
|
|
|
"node-edge-tts": "^1.2.10",
|
2026-02-20 16:06:07 -06:00
|
|
|
"opusscript": "^0.0.8",
|
2026-01-20 12:58:49 +00:00
|
|
|
"osc-progress": "^0.3.0",
|
2026-02-02 11:03:43 +09:00
|
|
|
"pdfjs-dist": "^5.4.624",
|
2026-02-06 16:37:48 -08:00
|
|
|
"playwright-core": "1.58.2",
|
2025-11-24 17:51:18 +01:00
|
|
|
"qrcode-terminal": "^0.12.0",
|
2025-12-07 18:49:55 +01:00
|
|
|
"sharp": "^0.34.5",
|
2026-01-17 18:02:25 +00:00
|
|
|
"sqlite-vec": "0.1.7-alpha.2",
|
2026-02-16 04:13:44 +01:00
|
|
|
"tar": "7.5.9",
|
2025-12-07 22:53:36 +01:00
|
|
|
"tslog": "^4.10.2",
|
2026-02-14 21:02:47 +01:00
|
|
|
"undici": "^7.22.0",
|
2026-01-05 22:52:13 +00:00
|
|
|
"ws": "^8.19.0",
|
2026-01-17 19:48:26 +00:00
|
|
|
"yaml": "^2.8.2",
|
2026-01-24 10:30:21 +00:00
|
|
|
"zod": "^4.3.6"
|
2025-11-24 11:23:15 +01:00
|
|
|
},
|
|
|
|
|
"devDependencies": {
|
2026-02-10 08:52:07 +09:00
|
|
|
"@grammyjs/types": "^3.24.0",
|
2026-02-21 14:35:10 +01:00
|
|
|
"@lit-labs/signals": "^0.2.0",
|
2026-02-21 02:46:31 -05:00
|
|
|
"@lit/context": "^1.1.6",
|
2025-12-07 18:49:55 +01:00
|
|
|
"@types/express": "^5.0.6",
|
2025-12-17 11:29:04 +01:00
|
|
|
"@types/markdown-it": "^14.1.2",
|
2026-02-19 14:46:10 +01:00
|
|
|
"@types/node": "^25.3.0",
|
2025-11-24 17:51:18 +01:00
|
|
|
"@types/qrcode-terminal": "^0.12.2",
|
2025-12-09 17:43:15 +01:00
|
|
|
"@types/ws": "^8.18.1",
|
2026-02-21 14:35:10 +01:00
|
|
|
"@typescript/native-preview": "7.0.0-dev.20260221.1",
|
2026-01-24 10:30:21 +00:00
|
|
|
"@vitest/coverage-v8": "^4.0.18",
|
2026-02-21 02:46:31 -05:00
|
|
|
"lit": "^3.3.2",
|
2026-02-21 14:35:10 +01:00
|
|
|
"oxfmt": "0.34.0",
|
|
|
|
|
"oxlint": "^1.49.0",
|
|
|
|
|
"oxlint-tsgolint": "^0.14.2",
|
2026-02-21 02:46:31 -05:00
|
|
|
"signal-utils": "0.21.1",
|
2026-02-05 19:36:36 +09:00
|
|
|
"tsdown": "^0.20.3",
|
2026-01-06 23:48:22 +00:00
|
|
|
"tsx": "^4.21.0",
|
2026-01-31 08:23:10 +00:00
|
|
|
"typescript": "^5.9.3",
|
2026-01-31 17:11:05 +09:00
|
|
|
"vitest": "^4.0.18"
|
2025-11-24 17:33:59 +01:00
|
|
|
},
|
2026-01-31 21:13:13 +09:00
|
|
|
"peerDependencies": {
|
|
|
|
|
"@napi-rs/canvas": "^0.1.89",
|
|
|
|
|
"node-llama-cpp": "3.15.1"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=22.12.0"
|
|
|
|
|
},
|
|
|
|
|
"packageManager": "pnpm@10.23.0",
|
2026-01-01 17:30:19 +01:00
|
|
|
"pnpm": {
|
2026-01-11 13:13:20 +02:00
|
|
|
"minimumReleaseAge": 2880,
|
2026-01-01 17:30:19 +01:00
|
|
|
"overrides": {
|
2026-02-19 15:10:08 -08:00
|
|
|
"hono": "4.11.10",
|
2026-02-19 02:31:20 -08:00
|
|
|
"fast-xml-parser": "5.3.6",
|
2026-02-19 02:41:13 -08:00
|
|
|
"request": "npm:@cypress/request@3.0.10",
|
|
|
|
|
"request-promise": "npm:@cypress/request-promise@5.0.0",
|
2026-02-01 14:29:45 -08:00
|
|
|
"form-data": "2.5.4",
|
2026-02-19 02:31:20 -08:00
|
|
|
"minimatch": "10.2.1",
|
2026-02-14 21:20:33 +01:00
|
|
|
"qs": "6.14.2",
|
2026-02-06 16:37:48 -08:00
|
|
|
"@sinclair/typebox": "0.34.48",
|
2026-02-16 05:29:55 +01:00
|
|
|
"tar": "7.5.9",
|
2026-02-01 14:29:45 -08:00
|
|
|
"tough-cookie": "4.1.3"
|
2026-02-01 18:23:25 -05:00
|
|
|
},
|
|
|
|
|
"onlyBuiltDependencies": [
|
|
|
|
|
"@lydell/node-pty",
|
|
|
|
|
"@matrix-org/matrix-sdk-crypto-nodejs",
|
|
|
|
|
"@napi-rs/canvas",
|
|
|
|
|
"@whiskeysockets/baileys",
|
|
|
|
|
"authenticate-pam",
|
|
|
|
|
"esbuild",
|
2026-02-20 16:06:07 -06:00
|
|
|
"koffi",
|
2026-02-01 18:23:25 -05:00
|
|
|
"node-llama-cpp",
|
|
|
|
|
"protobufjs",
|
|
|
|
|
"sharp"
|
|
|
|
|
]
|
2025-11-24 11:23:15 +01:00
|
|
|
}
|
2026-01-25 14:16:15 +00:00
|
|
|
}
|