diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f452b20761..519ba998da 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -10,8 +10,6 @@ # this file alone does not turn them on. # # Not covered here, deliberately: -# - packages/* pnpm-workspace.yaml declares `packages: ["."]`, so these -# are not installed workspace members and have no lockfile. # - tests/blackboard-poc/requirements.txt proof-of-concept only. # - github-actions would need version updates to be useful; under a # security-only policy it would do almost nothing. diff --git a/docs/contributing/wiki/Architecture-Overview.md b/docs/contributing/wiki/Architecture-Overview.md index cbaef832ca..56e8558149 100644 --- a/docs/contributing/wiki/Architecture-Overview.md +++ b/docs/contributing/wiki/Architecture-Overview.md @@ -135,13 +135,13 @@ User types message → SessionCreator / ChatPanel ## Key design decisions -| Decision | Rationale | -| ------------------- | --------------------------------------------------------------------------------------- | -| Tauri over Electron | ~10× lower memory footprint; Rust safety; no Node.js in the native layer | -| Jotai over Redux | Fine-grained atomic subscriptions avoid over-rendering large session lists | -| Zod RPC boundary | Catches schema drift between TS and Rust at runtime; errors surface early in dev | -| Per-agent parsers | Isolates each CLI agent's quirks; new agents added without touching shared code | -| AGPL-3.0 | Ensures hosted derivatives remain open; an OSS core is planned in `packages/orgii_core` | +| Decision | Rationale | +| ------------------- | ----------------------------------------------------------------------------------------------- | +| Tauri over Electron | ~10× lower memory footprint; Rust safety; no Node.js in the native layer | +| Jotai over Redux | Fine-grained atomic subscriptions avoid over-rendering large session lists | +| Zod RPC boundary | Catches schema drift between TS and Rust at runtime; errors surface early in dev | +| Per-agent parsers | Isolates each CLI agent's quirks; new agents added without touching shared code | +| AGPL-3.0 | Ensures hosted derivatives remain open, including any managed/hosted service built on this code | --- diff --git a/packages/README.md b/packages/README.md deleted file mode 100644 index bec00e7da7..0000000000 --- a/packages/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# `packages/` — Multi-package layout - -This repository is in transition toward a four-package layout that -separates the OSS-eligible core from the commercial marketplace -overlay. The full boundary design lives in -[`docs/rust-backend/oss-boundary--0506.md`](../docs/rust-backend/oss-boundary--0506.md). - -| Package | License | Status | Purpose | -| -------------------- | ------------------------ | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `marketplace-sdk/` | MIT | existing, public | Public A2A SDK for building and consuming agent apps on the ORGII Marketplace. | -| `ui/` | (internal) | existing, internal | Internal React component library shared across the desktop app. | -| `orgii_core/` | MIT | NEW (skeleton, PR 1) | OSS-eligible portion of the desktop app: agent-core, git, key-vault, integrations, system-services, types, app-paths, and the OSS-safe frontend. Will be a one-way subtree mirror of the public upstream repo (name TBD). | -| `orgii_marketplace/` | UNLICENSED (proprietary) | NEW (skeleton, PR 1) | Commercial marketplace overlay: marketplace UI, market HTTP, market session runner gating, MarketAuth, listing/provider wizards, Rust marketplace crate. Stays private. | - -**Conventions:** - -- Packages here are standalone (`@orgii/`) and are NOT npm - workspace members — the root `package.json` does not declare a - `workspaces` array. This mirrors the existing style of - `marketplace-sdk/` and `ui/`. -- `orgii_core/` never depends on `orgii_marketplace/`. Coupling - flows only in the overlay direction; see the boundary doc for - the explicit extension surfaces. -- Bug fixes that affect OSS code MUST land in the public upstream - first and then be pulled down into `orgii_core/` via subtree. - Direct edits to `orgii_core/` from this repo are forbidden once - the subtree mirror is established. diff --git a/packages/orgii_core/README.md b/packages/orgii_core/README.md deleted file mode 100644 index e714b4436a..0000000000 --- a/packages/orgii_core/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @orgii/orgii-core - -This directory is the **OSS-eligible portion** of the ORGII desktop -application codebase. In the planned repo split, code under this -package mirrors the public upstream repository (future name TBD — -likely `orgii-core` or `orgii-lite`) and is consumed here as a -read-only subtree. - -**Status:** skeleton only. PR 1 establishes the directory shape; -no real code has been moved yet. Actual extraction of `agent-core`, -`git`, `key-vault`, `integrations`, `system-services`, `types`, -`app-paths`, and the OSS-safe frontend modules happens in PR 2 and -onward. - -License: MIT (matches the planned public upstream). - -See `docs/rust-backend/oss-boundary--0506.md` for the full -boundary design, one-way sync invariants, and the per-surface -classification of what lives here vs. in `orgii_marketplace/`. diff --git a/packages/orgii_core/package.json b/packages/orgii_core/package.json deleted file mode 100644 index 5cd9383c09..0000000000 --- a/packages/orgii_core/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "@orgii/orgii-core", - "version": "0.1.0", - "description": "OSS-eligible portion of the ORGII desktop app (skeleton, see docs/rust-backend/oss-boundary--0506.md)", - "license": "MIT", - "scripts": {}, - "dependencies": {} -} diff --git a/packages/orgii_core/src-tauri/.gitkeep b/packages/orgii_core/src-tauri/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/orgii_core/src/.gitkeep b/packages/orgii_core/src/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/orgii_marketplace/README.md b/packages/orgii_marketplace/README.md deleted file mode 100644 index 868860085c..0000000000 --- a/packages/orgii_marketplace/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# @orgii/marketplace - -This directory will hold the **commercial marketplace overlay**: -marketplace UI (modules/Market, MarketListing feature, MarketAuth -components), market HTTP client, market hooks, market-key session -runner gating, listing/provider wizards, and the Rust marketplace -crate (proxy release, MITM cert, Stripe glue, payout, market_key -session enforcement). - -**Status:** skeleton only. PR 1 establishes the directory shape; -no real code has been moved yet. Marketplace frontend extraction -lands in PR 4a, the auth/login surface extraction in PR 4b, and -the Rust marketplace crate extraction in PR 5. - -License: **proprietary / UNLICENSED**. This package is NOT -open-sourced — it contains matching algorithms, key validators -with provider-specific error parsing, MITM CA logic, and billing -integration that must remain closed. - -See `docs/rust-backend/oss-boundary--0506.md` for the full -boundary design and the rationale for keeping this layer private. diff --git a/packages/orgii_marketplace/package.json b/packages/orgii_marketplace/package.json deleted file mode 100644 index 3c80d4df85..0000000000 --- a/packages/orgii_marketplace/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "@orgii/marketplace", - "version": "0.1.0", - "description": "Commercial marketplace overlay (proprietary, see docs/rust-backend/oss-boundary--0506.md)", - "license": "UNLICENSED", - "scripts": {}, - "dependencies": {} -} diff --git a/packages/orgii_marketplace/src-tauri/.gitkeep b/packages/orgii_marketplace/src-tauri/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/orgii_marketplace/src/.gitkeep b/packages/orgii_marketplace/src/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/ui/package.json b/packages/ui/package.json deleted file mode 100644 index 505453e98a..0000000000 --- a/packages/ui/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@orgii/ui", - "version": "1.0.0", - "description": "ORGII UI Component Library", - "main": "src/index.ts", - "module": "src/index.ts", - "types": "src/index.ts", - "scripts": {}, - "dependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - }, - "devDependencies": { - "@types/react": "^18.0.0", - "@types/react-dom": "^18.0.0", - "sass": "^1.69.0" - } -} diff --git a/packages/ui/src/ChatFontStyles/index.ts b/packages/ui/src/ChatFontStyles/index.ts deleted file mode 100644 index a74471a671..0000000000 --- a/packages/ui/src/ChatFontStyles/index.ts +++ /dev/null @@ -1,65 +0,0 @@ -/** - * ChatFontStyles - Unified font styling system for the chat panel - * - * Uses CSS variables to control font size, line height, and other styles - */ - -// CSS Variables -export const CHAT_CSS_VARIABLES = { - fontSize: "--chat-font-size", - codeFontSize: "--chat-code-font-size", - lineHeight: "--chat-line-height", - compactSpacing: "--chat-compact-spacing", -} as const; - -// Default values -export const CHAT_STYLE_DEFAULTS = { - fontSize: 14, - codeFontSize: 13, - lineHeight: 1.6, - compactSpacing: 8, -} as const; - -// CSS Class names -export const CHAT_TEXT_CLASSES = { - /** Main content text - uses --chat-font-size */ - text: "chat-text", - /** Small text (font-size - 1px) - for secondary labels */ - textSm: "chat-text-sm", - /** Extra small text (font-size - 2px) - for badges, timestamps */ - textXs: "chat-text-xs", -} as const; - -export const CHAT_CODE_CLASSES = { - /** Code blocks - uses --chat-code-font-size */ - code: "chat-code", - /** Small code text (font-size - 1px) */ - codeSm: "chat-code-sm", -} as const; - -/** - * Generate inline CSS variables for chat styling - */ -export function getChatStyleVariables(config: { - fontSize?: number; - codeFontSize?: number; - lineHeight?: number; - compactSpacing?: number; -}): React.CSSProperties { - return { - [CHAT_CSS_VARIABLES.fontSize]: config.fontSize - ? `${config.fontSize}px` - : undefined, - [CHAT_CSS_VARIABLES.codeFontSize]: config.codeFontSize - ? `${config.codeFontSize}px` - : undefined, - [CHAT_CSS_VARIABLES.lineHeight]: config.lineHeight ?? undefined, - [CHAT_CSS_VARIABLES.compactSpacing]: config.compactSpacing - ? `${config.compactSpacing}px` - : undefined, - } as React.CSSProperties; -} - -// Re-export for convenience -export type ChatTextClass = keyof typeof CHAT_TEXT_CLASSES; -export type ChatCodeClass = keyof typeof CHAT_CODE_CLASSES; diff --git a/packages/ui/src/ChatFontStyles/styles.scss b/packages/ui/src/ChatFontStyles/styles.scss deleted file mode 100644 index 4af3493d3f..0000000000 --- a/packages/ui/src/ChatFontStyles/styles.scss +++ /dev/null @@ -1,142 +0,0 @@ -/** - * Chat Font Styles - * - * This file provides CSS classes for chat component styling. - */ - -// CSS Variables with fallback defaults -:root { - --chat-font-size: 14px; - --chat-code-font-size: 13px; - --chat-line-height: 1.6; - --chat-compact-spacing: 8px; -} - -// Font fallbacks -$font-mono: var( - --code-font-family, - ui-monospace, - SFMono-Regular, - "SF Mono", - Menlo, - Consolas, - monospace -); -$font-size-fallback: 14px; -$font-size-code-fallback: 13px; - -// Container for demos -.chat-font-demo { - --chat-font-size: 14px; - --chat-code-font-size: 13px; - --chat-line-height: 1.6; - --chat-compact-spacing: 8px; -} - -// ========================================== -// Unified Text Classes -// ========================================== - -// Main content text -.chat-text { - font-size: var(--chat-font-size, $font-size-fallback); - line-height: var(--chat-line-height, 1.6); -} - -// Small text (e.g., secondary labels, descriptions) -.chat-text-sm { - font-size: calc(var(--chat-font-size, $font-size-fallback) - 1px); - line-height: var(--chat-line-height, 1.6); -} - -// Extra small text (e.g., badges, very fine print) -.chat-text-xs { - font-size: calc(var(--chat-font-size, $font-size-fallback) - 2px); - line-height: var(--chat-line-height, 1.6); -} - -// ========================================== -// Unified Code Classes -// ========================================== - -// Code blocks and monospace text -.chat-code { - font-family: $font-mono; - font-size: var(--chat-code-font-size, $font-size-code-fallback); -} - -// Smaller code text -.chat-code-sm { - font-family: $font-mono; - font-size: calc(var(--chat-code-font-size, $font-size-code-fallback) - 1px); -} - -// ========================================== -// Thinking Component Styles -// ========================================== - -.activity-thinking { - display: flex; - align-items: flex-start; - gap: 8px; - padding: 8px 12px; - border-radius: 8px; - background: rgba(139, 92, 246, 0.05); - border: 1px solid rgba(139, 92, 246, 0.2); - - &--streaming { - background: rgba(139, 92, 246, 0.08); - } - - &__content { - flex: 1; - font-size: var(--chat-font-size, $font-size-fallback); - line-height: var(--chat-line-height, 1.6); - color: #374151; - } - - &__cursor { - display: inline-block; - width: 2px; - height: 1em; - background: #8b5cf6; - animation: blink 1s infinite; - } -} - -@keyframes blink { - 0%, - 50% { - opacity: 1; - } - 51%, - 100% { - opacity: 0; - } -} - -// ========================================== -// Shell/Terminal Styles -// ========================================== - -.activity-shell { - &__cmd { - font-family: $font-mono; - font-size: var(--chat-code-font-size, $font-size-code-fallback); - background: #1a1a1a; - color: #e5e5e5; - padding: 8px 12px; - border-radius: 6px 6px 0 0; - } - - &__output { - font-family: $font-mono; - font-size: var(--chat-code-font-size, $font-size-code-fallback); - background: #0d0d0d; - color: #d4d4d4; - padding: 8px 12px; - border-radius: 0 0 6px 6px; - max-height: 200px; - overflow: auto; - } -} diff --git a/scripts/ci/detect-rust-changes.cjs b/scripts/ci/detect-rust-changes.cjs index 88afc1d139..f90bfcfb18 100644 --- a/scripts/ci/detect-rust-changes.cjs +++ b/scripts/ci/detect-rust-changes.cjs @@ -7,7 +7,6 @@ const fs = require("node:fs"); const FRONTEND_ONLY_PREFIXES = Object.freeze([ "assets/", "build/", - "packages/", "public/", "src/", "tests/", diff --git a/scripts/ci/detect-rust-changes.test.cjs b/scripts/ci/detect-rust-changes.test.cjs index 70a09b9810..ae5a944e30 100644 --- a/scripts/ci/detect-rust-changes.test.cjs +++ b/scripts/ci/detect-rust-changes.test.cjs @@ -15,7 +15,6 @@ test("pure frontend source changes skip Rust", () => { "src/components/Button.tsx", "src/store/session.ts", "public/index.html", - "packages/ui/src/styles.scss", ]), false );