Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@

/shared/ @aidanm3341 @lbulanti-ms @willosborne @grahampacker-ms @jpgough-ms @rocketstack-matt @Thels @LeighFinegold @markscott-ms

/calm-suite/ @opsflowanoop @gjs-opsflo @eddie-knight @rocketstack-matt @markscott-ms @jpgough-ms
/calm-guard/ @opsflowanoop @gjs-opsflo @eddie-knight @rocketstack-matt @markscott-ms @jpgough-ms
/calm-studio/ @opsflowanoop @gjs-opsflo @eddie-knight @rocketstack-matt @markscott-ms @jpgough-ms

# Ownership for dependency-related files at the root level
/package.json @finos/architecture-as-code-maintainers
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/automated-release-calm-studio.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ on:
branches:
- main
paths:
- 'calm-suite/calm-studio/**'
- 'calm-studio/**'
workflow_dispatch:

jobs:
Expand Down Expand Up @@ -53,7 +53,7 @@ jobs:
- name: Release
# Run multi-semantic-release from calm-studio dir so it scopes to @calmstudio/*
# packages only and does not accidentally release @finos/* siblings.
working-directory: calm-suite/calm-studio
working-directory: calm-studio
run: npx multi-semantic-release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-calm-guard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
- 'main'
- 'release*'
paths:
- 'calm-suite/calm-guard/**'
- 'calm-guard/**'
- '.github/workflows/build-calm-guard.yml'
- 'package.json'
- 'package-lock.json'
Expand All @@ -18,7 +18,7 @@ on:
- 'main'
- 'release*'
paths:
- 'calm-suite/calm-guard/**'
- 'calm-guard/**'
- '.github/workflows/build-calm-guard.yml'
- 'package.json'
- 'package-lock.json'
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/build-calm-studio-desktop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,12 @@ jobs:
- name: Build sidecar bundle
run: npm run build:bundle --workspace=@calmstudio/mcp
- name: Build sidecar binary
working-directory: calm-suite/calm-studio/packages/mcp-server
working-directory: calm-studio/packages/mcp-server
run: npx @yao-pkg/pkg dist/bundle.cjs --target ${{ matrix.target }} --output dist/calmstudio-mcp
- name: Rename with target triple
shell: bash
run: |
cd calm-suite/calm-studio/packages/mcp-server/dist
cd calm-studio/packages/mcp-server/dist
if [ "${{ runner.os }}" = "Windows" ]; then
mv calmstudio-mcp.exe calmstudio-mcp-${{ matrix.triple }}.exe
else
Expand All @@ -60,7 +60,7 @@ jobs:
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: sidecar-${{ matrix.triple }}
path: calm-suite/calm-studio/packages/mcp-server/dist/calmstudio-mcp-*
path: calm-studio/packages/mcp-server/dist/calmstudio-mcp-*

build-desktop:
name: Build Desktop (${{ matrix.triple }})
Expand Down Expand Up @@ -104,17 +104,17 @@ jobs:
- name: Rust cache
uses: swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
with:
workspaces: calm-suite/calm-studio/apps/studio/src-tauri
workspaces: calm-studio/apps/studio/src-tauri

- name: Download sidecar binary
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: sidecar-${{ matrix.triple }}
path: calm-suite/calm-studio/apps/studio/src-tauri/binaries/
path: calm-studio/apps/studio/src-tauri/binaries/

- name: Make sidecar executable
if: runner.os != 'Windows'
run: chmod +x calm-suite/calm-studio/apps/studio/src-tauri/binaries/calmstudio-mcp-*
run: chmod +x calm-studio/apps/studio/src-tauri/binaries/calmstudio-mcp-*

- name: Build calm-core and studio (pre-Tauri)
run: |
Expand All @@ -136,7 +136,7 @@ jobs:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
with:
projectPath: calm-suite/calm-studio/apps/studio
projectPath: calm-studio/apps/studio
tauriScript: npm run tauri --if-present --workspace=@calmstudio/studio
args: ${{ matrix.args }}
tagName: ${{ github.ref_name }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-calm-studio.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ on:
pull_request:
branches: ['main', 'release*']
paths:
- 'calm-suite/calm-studio/**'
- 'calm-studio/**'
- 'calm-models/**'
- '.github/workflows/build-calm-studio.yml'
- 'package.json'
- 'package-lock.json'
push:
branches: ['main', 'release*']
paths:
- 'calm-suite/calm-studio/**'
- 'calm-studio/**'
- 'calm-models/**'
- '.github/workflows/build-calm-studio.yml'
- 'package.json'
Expand Down
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ architecture-as-code/

`calm-suite/` holds two products whose packages are wired directly into the **root** npm workspaces (run all npm commands from the repo root, never from inside these folders):

- **`calm-studio/`** (`calmstudio-workspace`) — a SvelteKit (Svelte 5) visual CALM editor, itself an npm-workspace monorepo. Sub-packages and the app are root workspaces via `calm-suite/calm-studio/packages/*` and `calm-suite/calm-studio/apps/*`: `@calmstudio/calm-core`, `@calmstudio/calmscript`, `@calmstudio/extensions`, `@calmstudio/github-action`, `@calmstudio/mcp`, `@calmstudio/diagram` (web-component), `calmstudio` (vscode-extension), and `@calmstudio/studio` (app).
- **`calm-studio/`** (`calmstudio-workspace`) — a SvelteKit (Svelte 5) visual CALM editor, itself an npm-workspace monorepo. Sub-packages and the app are root workspaces via `calm-studio/packages/*` and `calm-studio/apps/*`: `@calmstudio/calm-core`, `@calmstudio/calmscript`, `@calmstudio/extensions`, `@calmstudio/github-action`, `@calmstudio/mcp`, `@calmstudio/diagram` (web-component), `calmstudio` (vscode-extension), and `@calmstudio/studio` (app).
- **`calm-guard/`** (`calmguard`) — a Next.js (App Router) continuous-compliance platform, plus its Docusaurus docs (`calmguard-docs`). Both are root workspaces.

## Technology Stack
Expand Down Expand Up @@ -173,8 +173,8 @@ For detailed guidance on specific packages, see:
- **[calm-plugins/vscode/AGENTS.md](calm-plugins/vscode/AGENTS.md)** - VSCode extension, MVVM architecture
- **[calm-widgets/AGENTS.md](calm-widgets/AGENTS.md)** - Widget system, Handlebars templates, common pitfalls
- **[shared/AGENTS.md](shared/AGENTS.md)** - Shared TypeScript utilities consumed across packages
- **[calm-suite/calm-studio/AGENTS.md](calm-suite/calm-studio/AGENTS.md)** - CalmStudio visual editor, CALM 1.2 rules, nested workspaces
- **[calm-suite/calm-guard/AGENTS.md](calm-suite/calm-guard/AGENTS.md)** - CALMGuard compliance platform, agents/skills
- **[calm-studio/AGENTS.md](calm-studio/AGENTS.md)** - CalmStudio visual editor, CALM 1.2 rules, nested workspaces
- **[calm-guard/AGENTS.md](calm-guard/AGENTS.md)** - CALMGuard compliance platform, agents/skills
- **[advent-of-calm/AGENTS.md](advent-of-calm/AGENTS.md)** - Educational content, day format, testing

### When to Use Package-Specific Guides
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ Ready to get started? Check out the [CALM tutorials](https://calm.finos.org/tuto
| [CALM-Server](./calm-server) | [@rocketstack-matt](https://github.com/rocketstack-matt), [@markscott-ms](https://github.com/markscott-ms) | [![Build CALM Server](https://github.com/finos/architecture-as-code/actions/workflows/build-calm-server.yml/badge.svg)](https://github.com/finos/architecture-as-code/actions/workflows/build-calm-server.yml) |
| [Docs](./docs) | [@rocketstack-matt](https://github.com/rocketstack-matt), [@jimthompson5802](https://github.com/jimthompson5802) | [![Sync Docs to S3](https://github.com/finos/architecture-as-code/actions/workflows/s3-docs-sync.yml/badge.svg)](https://github.com/finos/architecture-as-code/actions/workflows/s3-docs-sync.yml) [![Build Docs](https://github.com/finos/architecture-as-code/actions/workflows/build-docs.yml/badge.svg)](https://github.com/finos/architecture-as-code/actions/workflows/build-docs.yml) |
| [CALM VSCode Plugin](./calm-plugins/vscode) | [@LeighFinegold](https://github.com/LeighFinegold), [@rocketstack-matt](https://github.com/rocketstack-matt), [@markscott-ms](https://github.com/markscott-ms) | ![Build VS Code Extension](https://github.com/finos/architecture-as-code/workflows/Build%20VS%20Code%20Extension/badge.svg) |
| [CALM Guard](./calm-suite/calm-guard) | [@opsflowanoop](https://github.com/opsflowanoop), [@gjs-opsflo](https://github.com/gjs-opsflo), [@eddie-knight](https://github.com/eddie-knight) | [![Build CALM Guard](https://github.com/finos/architecture-as-code/actions/workflows/build-calm-guard.yml/badge.svg)](https://github.com/finos/architecture-as-code/actions/workflows/build-calm-guard.yml) |
| [CALM Studio](./calm-suite/calm-studio) | [@opsflowanoop](https://github.com/opsflowanoop), [@gjs-opsflo](https://github.com/gjs-opsflo), [@eddie-knight](https://github.com/eddie-knight) | [![Build CALM Studio](https://github.com/finos/architecture-as-code/actions/workflows/build-calm-studio.yml/badge.svg)](https://github.com/finos/architecture-as-code/actions/workflows/build-calm-studio.yml) |
| [CALM Guard](./calm-guard) | [@opsflowanoop](https://github.com/opsflowanoop), [@gjs-opsflo](https://github.com/gjs-opsflo), [@eddie-knight](https://github.com/eddie-knight) | [![Build CALM Guard](https://github.com/finos/architecture-as-code/actions/workflows/build-calm-guard.yml/badge.svg)](https://github.com/finos/architecture-as-code/actions/workflows/build-calm-guard.yml) |
| [CALM Studio](./calm-studio) | [@opsflowanoop](https://github.com/opsflowanoop), [@gjs-opsflo](https://github.com/gjs-opsflo), [@eddie-knight](https://github.com/eddie-knight) | [![Build CALM Studio](https://github.com/finos/architecture-as-code/actions/workflows/build-calm-studio.yml/badge.svg)](https://github.com/finos/architecture-as-code/actions/workflows/build-calm-studio.yml) |

## Roadmap

Expand Down
4 changes: 2 additions & 2 deletions calm-suite/calm-guard/AGENTS.md → calm-guard/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ examples/ # Demo CALM architecture JSON files

## Key Commands

Run from monorepo root (preferred) or from `calm-suite/calm-guard/` (drop the `--workspace=calmguard` flag).
Run from monorepo root (preferred) or from `calm-guard/` (drop the `--workspace=calmguard` flag).

```bash
# From monorepo root
Expand All @@ -174,7 +174,7 @@ npm run typecheck --workspace=calmguard # TypeScript strict check
npm run test:run --workspace=calmguard # Vitest single run

# Docs site (Docusaurus)
npm run docs:dev # From calm-suite/calm-guard/
npm run docs:dev # From calm-guard/
```

## Environment Variables
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion calm-suite/calm-guard/README.md → calm-guard/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ From the monorepo root:
npm run dev --workspace=calmguard # Start dev server at http://localhost:3000
```

Or from `calm-suite/calm-guard/`:
Or from `calm-guard/`:

```bash
npm run dev
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ From the monorepo root:
npm run start --workspace=calmguard-docs
```

Or from `calm-suite/calm-guard/`:
Or from `calm-guard/`:

```bash
npm run docs:dev
Expand All @@ -36,7 +36,7 @@ From the monorepo root:
npm run build --workspace=calmguard-docs
```

Or from `calm-suite/calm-guard/`:
Or from `calm-guard/`:

```bash
npm run docs:build
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ CalmGuard lives in the [`finos/architecture-as-code`](https://github.com/finos/a
git clone https://github.com/finos/architecture-as-code.git
cd architecture-as-code
npm ci
cp calm-suite/calm-guard/.env.example calm-suite/calm-guard/.env.local
cp calm-guard/.env.example calm-guard/.env.local
# Edit .env.local and add your GOOGLE_GENERATIVE_AI_API_KEY
npm run dev --workspace=calmguard
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ This installs all workspaces (calm-guard, calm-studio, cli, server, etc.) from t

### 3. Configure environment variables

Create a `.env.local` file in `calm-suite/calm-guard/`:
Create a `.env.local` file in `calm-guard/`:

```bash
# Required — Gemini is the default LLM provider
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ const config: Config = {
label: 'Documentation',
},
{
href: 'https://github.com/finos/architecture-as-code/tree/main/calm-suite/calm-guard',
href: 'https://github.com/finos/architecture-as-code/tree/main/calm-guard',
label: 'GitHub',
position: 'right',
},
Expand Down Expand Up @@ -118,7 +118,7 @@ const config: Config = {
items: [
{
label: 'GitHub',
href: 'https://github.com/finos/architecture-as-code/tree/main/calm-suite/calm-guard',
href: 'https://github.com/finos/architecture-as-code/tree/main/calm-guard',
},
],
},
Expand Down
File renamed without changes.
18 changes: 18 additions & 0 deletions calm-guard/next.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import type { NextConfig } from 'next';
import path from 'node:path';

const nextConfig: NextConfig = {
reactStrictMode: true,
// Exclude @finos/calm-cli from webpack bundling — it's a Node.js CLI tool
// invoked as a subprocess at runtime, not imported directly.
serverExternalPackages: ['@finos/calm-cli'],
// Pin Next's workspace-root inference to the monorepo root. After the A3
// calm-suite/calm-guard → calm-guard move, the workspace is 1 level deep
// instead of 2, and Next's auto-detection (which also picks up stray
// pnpm-lock.yaml files in $HOME during local dev) emits the wrong relative
// prefix for `node_modules/next/...` resolutions. Anchoring to the monorepo
// root via `outputFileTracingRoot` makes the path computation deterministic.
outputFileTracingRoot: path.join(__dirname, '..'),
};

export default nextConfig;
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
"repository": {
"type": "git",
"url": "https://github.com/finos/architecture-as-code.git",
"directory": "calm-suite/calm-guard"
"directory": "calm-guard"
},
"homepage": "https://github.com/finos/architecture-as-code/tree/main/calm-suite/calm-guard",
"homepage": "https://github.com/finos/architecture-as-code/tree/main/calm-guard",
"bugs": {
"url": "https://github.com/finos/architecture-as-code/issues"
},
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ function buildInfraPRBody(infra: CloudInfraConfig): string {
return [
'## CALMGuard Cloud Infrastructure',
'',
'Generated by [CALMGuard](https://github.com/finos/architecture-as-code/tree/main/calm-suite/calm-guard) compliance analysis.',
'Generated by [CALMGuard](https://github.com/finos/architecture-as-code/tree/main/calm-guard) compliance analysis.',
'',
'### Summary',
infra.summary,
Expand Down Expand Up @@ -165,7 +165,7 @@ function buildPipelinePRBody(
return [
'## CALMGuard Pipeline Artifacts',
'',
'Generated by [CALMGuard](https://github.com/finos/architecture-as-code/tree/main/calm-suite/calm-guard) compliance analysis.',
'Generated by [CALMGuard](https://github.com/finos/architecture-as-code/tree/main/calm-guard) compliance analysis.',
'',
'### Summary',
pipeline.summary,
Expand Down Expand Up @@ -420,7 +420,7 @@ export async function POST(req: Request): Promise<Response> {
const remediationPrBody = [
'## CALMGuard Compliance Remediation',
'',
'Generated by [CALMGuard](https://github.com/finos/architecture-as-code/tree/main/calm-suite/calm-guard) compliance analysis.',
'Generated by [CALMGuard](https://github.com/finos/architecture-as-code/tree/main/calm-guard) compliance analysis.',
'',
'### Summary',
summary,
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading
Loading