@starlein/paperclip-plugin-company-wizard 0.4.5 → 0.4.7
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/CHANGELOG.md +58 -0
- package/README.md +7 -5
- package/dist/manifest.js +4 -9
- package/dist/manifest.js.map +2 -2
- package/dist/ui/index.css +82 -0
- package/dist/ui/index.css.map +2 -2
- package/dist/ui/index.js +423 -139
- package/dist/ui/index.js.map +4 -4
- package/dist/worker.js +589 -58
- package/dist/worker.js.map +3 -3
- package/package.json +1 -1
- package/templates/bootstrap-instructions.md +2 -2
- package/templates/modules/architecture-plan/agents/ui-designer/skills/design-system.md +1 -1
- package/templates/modules/architecture-plan/skills/architecture-plan.md +1 -1
- package/templates/modules/auto-assign/README.md +9 -7
- package/templates/modules/auto-assign/agents/ceo/heartbeat-section.md +3 -1
- package/templates/modules/auto-assign/agents/ceo/skills/auto-assign.fallback.md +14 -8
- package/templates/modules/auto-assign/agents/product-owner/heartbeat-section.md +3 -1
- package/templates/modules/auto-assign/module.meta.json +3 -3
- package/templates/modules/auto-assign/skills/auto-assign.md +2 -2
- package/templates/modules/backlog/agents/ceo/heartbeat-section.md +1 -1
- package/templates/modules/backlog/agents/ceo/skills/backlog-health.fallback.md +2 -0
- package/templates/modules/backlog/agents/product-owner/heartbeat-section.md +1 -1
- package/templates/modules/backlog/docs/backlog-process.md +45 -8
- package/templates/modules/backlog/docs/backlog-template.md +3 -2
- package/templates/modules/backlog/module.meta.json +3 -3
- package/templates/modules/backlog/skills/backlog-health.bar.md +3 -1
- package/templates/modules/backlog/skills/backlog-health.md +8 -5
- package/templates/modules/competitive-intel/skills/competitive-tracking.md +1 -1
- package/templates/modules/github-repo/README.md +3 -3
- package/templates/modules/github-repo/agents/engineer/skills/git-workflow.md +72 -9
- package/templates/modules/github-repo/docs/git-workflow.md +65 -6
- package/templates/modules/github-repo/module.meta.json +1 -1
- package/templates/modules/market-analysis/agents/ux-researcher/skills/market-analysis.md +1 -1
- package/templates/modules/market-analysis/skills/market-analysis.md +1 -1
- package/templates/modules/pr-review/agents/devops/skills/infra-review.md +6 -8
- package/templates/modules/pr-review/agents/engineer/skills/pr-workflow.md +31 -12
- package/templates/modules/pr-review/agents/product-owner/skills/product-review.md +3 -2
- package/templates/modules/pr-review/agents/ui-designer/skills/design-review.md +4 -6
- package/templates/modules/pr-review/agents/ux-researcher/skills/ux-review.md +4 -6
- package/templates/modules/pr-review/docs/pr-conventions.md +4 -4
- package/templates/modules/pr-review/module.meta.json +1 -1
- package/templates/modules/security-audit/skills/threat-model.md +1 -1
- package/templates/modules/stall-detection/agents/ceo/heartbeat-section.md +1 -1
- package/templates/modules/tech-stack/skills/tech-stack.md +1 -1
- package/templates/modules/triage/skills/issue-triage.md +1 -1
- package/templates/modules/user-testing/agents/qa/skills/user-testing.md +1 -1
- package/templates/modules/user-testing/skills/user-testing.md +1 -1
- package/templates/modules/vision-workshop/agents/ceo/skills/vision-workshop.md +1 -1
- package/templates/presets/repo-maintenance/preset.meta.json +3 -3
- package/templates/roles/audio-designer/role.meta.json +5 -2
- package/templates/roles/cmo/role.meta.json +2 -1
- package/templates/roles/code-reviewer/AGENTS.md +3 -3
- package/templates/roles/code-reviewer/role.meta.json +4 -1
- package/templates/roles/cto/role.meta.json +2 -1
- package/templates/roles/customer-success/role.meta.json +2 -1
- package/templates/roles/devops/role.meta.json +2 -1
- package/templates/roles/engineer/AGENTS.md +2 -0
- package/templates/roles/engineer/HEARTBEAT.md +1 -1
- package/templates/roles/engineer/role.meta.json +2 -1
- package/templates/roles/game-artist/role.meta.json +5 -2
- package/templates/roles/game-designer/role.meta.json +4 -1
- package/templates/roles/level-designer/role.meta.json +4 -1
- package/templates/roles/product-owner/AGENTS.md +2 -1
- package/templates/roles/product-owner/HEARTBEAT.md +1 -1
- package/templates/roles/product-owner/role.meta.json +4 -1
- package/templates/roles/qa/role.meta.json +2 -1
- package/templates/roles/security-engineer/role.meta.json +2 -1
- package/templates/roles/technical-writer/role.meta.json +2 -1
- package/templates/roles/ui-designer/role.meta.json +2 -1
- package/templates/roles/ux-researcher/role.meta.json +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,9 +4,67 @@ All notable changes to the Company Wizard plugin are documented here.
|
|
|
4
4
|
|
|
5
5
|
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
6
|
|
|
7
|
+
## [0.4.7] - 2026-06-22
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **Stall-safe PR merge workflow rules (`executionPolicy` + roles).** Fixes the long-standing defect where companies without a Code Reviewer would create endless branches without ever merging them into the base ref, or open PRs that never got merged. Two modes, chosen automatically from the roles present:
|
|
12
|
+
- **PR-Gate mode** (Code Reviewer present): Paperclip-native gate flow via `executionPolicy` — QA (review, when present) → Security Engineer (review, only on security-relevant changes) → Product Owner (approval, when present) → **Code Reviewer as the non-author merge gate** (last stage, merges via `gh pr merge <N> --merge` and only then records `approved`, which closes the issue).
|
|
13
|
+
- **PR-Self-Merge mode** (no Code Reviewer): no `executionPolicy` stages — the engineer opens the PR and merges it themselves via `gh pr merge <N> --merge`. Other review roles leave advisory PR comments but do not block.
|
|
14
|
+
- **`resolveReviewGate` no longer renders an `executionPolicy` sketch without a merge gate (CRITICAL).** Previously, for `engineer + product-owner` (no Code Reviewer), a gate with an approver (PO) but no merge gate was rendered — the PO approval would then auto-close the issue to `done` while the PR was still open on GitHub. Now `null` is returned whenever no non-author merge gate is resolvable (self-merge path). (`src/logic/assemble.js`, `resolveReviewGate`.)
|
|
15
|
+
- **The merge gate can never be the issue executor (guard).** `resolveReviewGate` discards a `mergeGate` that equals the issue's `assignTo` (the executor/author). Because Paperclip excludes the original executor from every stage, a self-stage would stall forever with `422 No eligible approval participant`. The guard prevents this — including for hand-edited presets or future modules. (`src/logic/assemble.js`.)
|
|
16
|
+
- **No more role fallback for the merge gate.** Previously, when the Code Reviewer was absent, another role (DevOps, QA, …) was substituted as a static gate stage — rendering an `executionPolicy` sketch the engineer is explicitly told never to set. Now the rule is consistent: no Code Reviewer → self-merge, no substitution. (`src/logic/assemble.js`.)
|
|
17
|
+
- **Product Owner stage is consistently tied to presence.** The PO approval stage was marked as "always" in four files (skill, conventions, module meta, BOOTSTRAP guardrail) while QA/Security were already conditional. With `pr-review + code-reviewer` but no PO, this produced a stage with no eligible participant → 422. The PO stage now reads "when present" / "when one is on the team" everywhere. (`pr-workflow.md`, `pr-conventions.md`, `module.meta.json`, `assemble.js` guardrail.)
|
|
18
|
+
- **Domain reviewers (UI/UX/DevOps) are consistently advisory.** Previously the skills ("Record your verdict … approved/changes_requested" = blocking stage) contradicted `pr-conventions.md` ("advisory, never gate"). Domain reviewers now post advisory PR comments only and escalate blockers to QA/Security/merge gate — they are never a stage themselves. `infra-review` routes security blockers to the Security Engineer stage instead of blocking directly. (`design-review.md`, `ux-review.md`, `infra-review.md`, `pr-workflow.md`, `pr-conventions.md`.)
|
|
19
|
+
- **`code-reviewer` AGENTS.md is self-consistent.** "Post your review as advisory" + "Your review does not gate the merge" contradicted the merge-gate principle (Principles + `code-review.md`). Line 18 now separates the GitHub comment (advisory — no GitHub-native approval because all agents share one account) from the `executionPolicy` stage (the real gate). Step 8 branches: in pr-review mode the Code Reviewer merges via `gh pr merge` and records `approved`; otherwise it leaves an advisory comment only. (`templates/roles/code-reviewer/AGENTS.md`.)
|
|
20
|
+
- **Product Owner review skill is role-correct.** "Final approver / last gate before merge" was wrong — the PO is the product sign-off *before* the Code Reviewer merge gate, not the final stage. The PO is also not a merge owner (in self-merge mode the engineer merges). (`product-review.md`.)
|
|
21
|
+
- **`docs/git-workflow.md` uses PR self-merge instead of `git merge`+push.** The "Direct-to-Base-Ref Workflow" used `git checkout base → git merge → git push`, which the skill forbids and branch protection (same module) would reject. Replaced with a "PR Self-Merge Flow" using `gh pr create` + `gh pr merge <N> --merge`. (`templates/modules/github-repo/docs/git-workflow.md`.)
|
|
22
|
+
- **Branch protection with `enforce_admins: true`.** Previously `enforce_admins: false` let the shared admin account bypass the PR requirement with a direct push to the base ref — exactly what the protection is meant to prevent. With `required_approving_review_count: 0` the admin can still open a PR and merge it with zero approvals (self-merge stays functional); only the direct-push bypass is closed. Added the "distinct non-author GitHub reviewer credentials" qualifier and a note on `restrictions: null`. (`preset.meta.json`, `git-workflow.md` skill.)
|
|
23
|
+
- **Work-product POST includes the `Authorization` header.** `pr-workflow.md` documented the POST without `Authorization: Bearer $PAPERCLIP_API_KEY`; in authenticated deployments this yielded 401. Header added, matching the `git-workflow.md` skill. (`pr-workflow.md`.)
|
|
24
|
+
- **`worker.ts` typecheck errors fixed.** Seven `Cannot find name` errors occurred because `allRoleNames`, `existingManifest`, `existingByTemplateRole`, and `routines` were declared inside the `try` block but referenced after the `try`/`catch` in the manifest-save and governance-cleanup blocks. The declarations were hoisted before the `try` block; `tsc --noEmit` now passes cleanly. (`src/worker.ts`.)
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- **README/docs: the merge gate is the Code Reviewer, not the engineer.** The PR-review description in `README.md` had the roles inverted ("merge gate owned by the Engineer") — exactly the 422-stall bug. Corrected to Code Reviewer (non-author) as the merge gate, engineer as the executor (never a stage participant), domain reviewers advisory, and a self-merge path when no Code Reviewer is present. (`README.md`.)
|
|
29
|
+
|
|
30
|
+
### Tests
|
|
31
|
+
|
|
32
|
+
- Replaced/augmented static JSON-only tests with behavioral `assembleCompany` calls: no `executionPolicy` sketch + installed self-merge skill when no Code Reviewer is present (C1); guard prevents executor-as-mergeGate (I16); PO stage is omitted when no Product Owner is present (M8); ordered stages QA → PO → Code Reviewer (M9). (`assemble.test.js`, `assemble.integration.test.js`.)
|
|
33
|
+
|
|
7
34
|
---
|
|
35
|
+
|
|
36
|
+
## [0.4.6] - 2026-06-18
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
|
|
40
|
+
- **Docker path auto-detection for companiesDir and templatesPath.** The plugin now detects Docker vs. NPX installations automatically: if `~/instances` exists (Docker, where HOME=/paperclip), paths default to `~/instances/default/companies` and `~/plugin-templates`; otherwise (NPX/local), paths default to `~/.paperclip/instances/default/companies` and `~/.paperclip/plugin-templates`. Both settings are now rarely needed — the plugin picks the right layout automatically. (`src/worker.ts`, `isDockerLayout()`, `resolveWritableCompaniesDir`, `ensureTemplatesDir`.)
|
|
41
|
+
- **Removed `disableBoardApprovalOnNewCompanies` setting.** This setting was never used in practice — board approval governance is always preserved for new companies. The setting has been removed from the manifest and the worker no longer reads or applies it. (`src/manifest.ts`, `src/worker.ts`.)
|
|
42
|
+
- **Direct assignment flow — backlog grooming assigns issues at creation, not via routine sweep.** The backlog-health skill now instructs the PM to assign each issue to its best-fit agent as it is created. The auto-assign routine is reframed as a low-frequency safety net (every 4 hours) that catches stragglers, not the primary dispatch path. (`backlog` module, `auto-assign` module.)
|
|
43
|
+
- **Engineer hands off to Product Owner on completion (without pr-review).** When the PR-review module is not active and no `executionPolicy` is set, the engineer moves the issue to `in_review` and reassigns to the Product Owner in the same heartbeat. Never leaves finished work in `in_review` assigned to itself. (`engineer` AGENTS.md, HEARTBEAT.md.)
|
|
44
|
+
- **Product Owner reviews `in_review` issues immediately.** When an issue is assigned to the PM in `in_review` and no formal executionPolicy participant is waiting, the PM reviews it against acceptance criteria and sets it `done` or sends it back to the engineer. (`product-owner` AGENTS.md, HEARTBEAT.md.)
|
|
45
|
+
- **Engineer merges feature branches to base when no PR review is active.** The `github-repo` git-workflow skill now has an explicit direct-to-base-ref flow: push branch → checkout base → merge → push base → delete branch. (`github-repo` module.)
|
|
46
|
+
- **Git identity uses real user profile instead of "Paperclip Bootstrap".** The initial empty commit in fresh repositories now uses the board user's name and email (resolved from the Paperclip session) instead of the hardcoded "Paperclip Bootstrap / bootstrap@paperclip.local". Falls back to "Paperclip Bootstrap" when no session is available (local_trusted mode). (`src/api/client.js`, `src/worker.ts`, `src/logic/assemble.js`.)
|
|
47
|
+
- **Engineer claims unassigned engineering work as a fallback.** When no actionable work is assigned and unassigned `todo` issues clearly match engineering, the engineer claims the highest-priority ready issue. (`engineer` AGENTS.md.)
|
|
48
|
+
- **Manifest setting descriptions updated.** `companiesDir` and `templatesPath` now document auto-detection behavior. `templatesRepoUrl` now notes that the default is correct for most setups. (`src/manifest.ts`.)
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
|
|
52
|
+
- **Branches no longer dangle unmerged without a PR review module.** The git-workflow skill previously instructed engineers to "push to the correct configured base branch" but did not explain how to merge a feature branch back to base. Without a PR review module, branches were pushed but never merged, leaving `main` stale and the team stuck. The skill now includes explicit merge-and-push steps for the no-review case.
|
|
53
|
+
- **Auto-assign README and heartbeat-section schedule wording.** "Every few hours" was replaced with the actual cron schedule "every 4 hours" to match the `0 */4 * * *` routine. (`auto-assign` module.)
|
|
54
|
+
- **github-repo README now matches the actual direct-to-base-ref skill.** The README previously said "commits directly on the default branch, no branches" but the skill uses a feature branch + merge-to-base flow. (`github-repo` README.)
|
|
55
|
+
|
|
56
|
+
### Removed
|
|
57
|
+
|
|
58
|
+
- `disableBoardApprovalOnNewCompanies` plugin setting. Board approval governance is always preserved for new companies — this toggle was never used in practice.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
8
62
|
## [0.4.5] - 2026-06-16
|
|
9
63
|
|
|
64
|
+
### Fixed
|
|
65
|
+
|
|
66
|
+
- **Fresh local project workspaces are initialized before provisioning.** Git-worktree companies now get an on-disk project repository during setup instead of letting Paperclip fall back to agent workspace directories when the project path does not exist yet.
|
|
67
|
+
|
|
10
68
|
### Changed
|
|
11
69
|
|
|
12
70
|
- **The plugin-update notice is compact and scoped to the onboarding page.** It was a large amber banner shown on every wizard step; it is now a small one-line notice (`current → latest`, npm link) rendered only on the onboarding (plugin entry) page next to the template update action, explicitly labeled "Company Wizard plugin". (`WizardShell.tsx`, `StepOnboarding.tsx`.)
|
package/README.md
CHANGED
|
@@ -15,7 +15,9 @@
|
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
> **Fork:** This is a community-maintained fork of [yesterday-AI/paperclip-plugin-company-wizard](https://github.com/yesterday-AI/paperclip-plugin-company-wizard), updated for the current Paperclip API (`>=2026.529.0`) with substantial bug fixes. End-to-end company setup is governed through current Paperclip workflows as of v0.4.
|
|
18
|
+
> **Fork:** This is a community-maintained fork of [yesterday-AI/paperclip-plugin-company-wizard](https://github.com/yesterday-AI/paperclip-plugin-company-wizard), updated for the current Paperclip API (`>=2026.529.0`) with substantial bug fixes. End-to-end company setup is governed through current Paperclip workflows as of v0.4.6.
|
|
19
|
+
|
|
20
|
+
**Update Company:** If you have provisioned your company before with some older version of this plugin or you have an existing company, since version 0.4.6 you can update your existing company by providing the company ID in the wizard summary page. It will make a soft update of agent instructions and workflow/instruction documents.
|
|
19
21
|
|
|
20
22
|
<details>
|
|
21
23
|
<summary><strong>What changed vs. upstream</strong></summary>
|
|
@@ -163,7 +165,7 @@ Start with just a CEO. Everything works. Add roles and responsibilities shift au
|
|
|
163
165
|
| `tech-stack` | Engineer | CEO | tech-stack |
|
|
164
166
|
| `architecture-plan` | Engineer | CEO | architecture-plan |
|
|
165
167
|
| `design-system` | UI Designer | Engineer | architecture-plan |
|
|
166
|
-
| `pr-review` | QA (
|
|
168
|
+
| `pr-review` | QA (review) / Security Engineer (review, security-relevant) / Product Owner (approval, when present) / Code Reviewer (merge gate, non-author); UI / UX / DevOps advisory | — | pr-review |
|
|
167
169
|
| `threat-model` | Security Engineer → DevOps | Engineer | security-audit |
|
|
168
170
|
| `security-review` | Security Engineer → DevOps | Engineer | security-audit |
|
|
169
171
|
| `project-docs` | Technical Writer → Engineer | CEO | documentation |
|
|
@@ -279,7 +281,7 @@ Modules are composable capabilities you layer on top of the base team. Each modu
|
|
|
279
281
|
| Module | What it does | Kickoff task |
|
|
280
282
|
| :----- | :----------- | :----------- |
|
|
281
283
|
| **`github-repo`** | Git workflow and commit conventions | Engineer initializes repo |
|
|
282
|
-
| **`pr-review`** | PR-based review workflow | Engineer
|
|
284
|
+
| **`pr-review`** | PR-based review workflow | Engineer configures PR workflow and branch protection (requires PRs, no approval gate) |
|
|
283
285
|
| **`backlog`** | Auto-generate issues from goals when backlog runs low | Primary owner creates initial backlog |
|
|
284
286
|
| **`auto-assign`** | Assign unassigned issues to idle agents | — |
|
|
285
287
|
| **`stall-detection`** | Detect stuck handovers, nudge or escalate | — |
|
|
@@ -340,9 +342,9 @@ Git workflow and commit conventions.
|
|
|
340
342
|
|
|
341
343
|
PR-based review workflow. Requires `github-repo`. Activates with `code-reviewer`, `product-owner`, `ui-designer`, `ux-researcher`, `qa`, or `devops`.
|
|
342
344
|
|
|
343
|
-
Reviews run through the issue's native `executionPolicy` (stages), not child issues: a `review` stage for the
|
|
345
|
+
Reviews run through the issue's native `executionPolicy` (stages), not child issues: a `review` stage for QA when present, a `review` stage for the Security Engineer only on security-relevant changes, an `approval` stage for the Product Owner when present, then a final `approval` **merge gate** owned by the Code Reviewer (a non-author) — who is woken last to merge the PR before recording the verdict that closes the issue. The merge gate is deliberately the last stage so the Product Owner's approval does not auto-close the issue with the PR still open. The engineer (the issue's executor) is never a stage participant — Paperclip excludes the original executor, so a self-stage stalls with `422 No eligible approval participant`; this is why the merge gate is the Code Reviewer, not the engineer. Domain reviewers (UI Designer, UX Researcher, DevOps) are advisory — they post PR comments and escalate concerns to a blocking reviewer; they are never themselves a stage. When no Code Reviewer is on the team, no `executionPolicy` stages are set and the engineer self-merges via `gh pr merge <N> --merge` (PR Self-Merge Flow).
|
|
344
346
|
|
|
345
|
-
- **Task:** Engineer
|
|
347
|
+
- **Task:** Engineer configures PR workflow and branch protection (requires PRs, no approval gate)
|
|
346
348
|
- **Doc:** `docs/pr-conventions.md`
|
|
347
349
|
|
|
348
350
|
#### backlog
|
package/dist/manifest.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
var manifest = {
|
|
3
3
|
id: "starlein.paperclip-plugin-company-wizard",
|
|
4
4
|
apiVersion: 1,
|
|
5
|
-
version: "0.4.
|
|
5
|
+
version: "0.4.7",
|
|
6
6
|
displayName: "Company Wizard",
|
|
7
7
|
description: "AI-powered wizard to bootstrap agent companies from composable templates",
|
|
8
8
|
author: "Sascha Pietrowski <sp@speednetwork.de>",
|
|
@@ -28,16 +28,16 @@ var manifest = {
|
|
|
28
28
|
properties: {
|
|
29
29
|
companiesDir: {
|
|
30
30
|
type: "string",
|
|
31
|
-
description: "Directory where assembled company workspaces are written.
|
|
31
|
+
description: "Directory where assembled company workspaces are written. Auto-detected: ~/instances/default/companies in Docker setups, ~/.paperclip/instances/default/companies otherwise. Rarely needs manual override."
|
|
32
32
|
},
|
|
33
33
|
templatesPath: {
|
|
34
34
|
type: "string",
|
|
35
|
-
description: "Path to the templates directory.
|
|
35
|
+
description: "Path to the templates directory. Auto-detected: ~/plugin-templates in Docker setups, ~/.paperclip/plugin-templates otherwise. Rarely needs manual override."
|
|
36
36
|
},
|
|
37
37
|
templatesRepoUrl: {
|
|
38
38
|
type: "string",
|
|
39
39
|
default: "https://github.com/starlein/paperclip-plugin-company-wizard/tree/main/templates",
|
|
40
|
-
description: "GitHub tree URL
|
|
40
|
+
description: "GitHub tree URL for template downloads. The default is correct for most setups \u2014 only change this if using a custom fork."
|
|
41
41
|
},
|
|
42
42
|
anthropicApiKey: {
|
|
43
43
|
type: "string",
|
|
@@ -54,11 +54,6 @@ var manifest = {
|
|
|
54
54
|
paperclipPassword: {
|
|
55
55
|
type: "string",
|
|
56
56
|
description: "Board login password (for authenticated instances)."
|
|
57
|
-
},
|
|
58
|
-
disableBoardApprovalOnNewCompanies: {
|
|
59
|
-
type: "boolean",
|
|
60
|
-
default: false,
|
|
61
|
-
description: "Optional. If true, the wizard will PATCH new companies to set requireBoardApprovalForNewAgents=false during provisioning. Leave false to preserve approval-gated hiring policies."
|
|
62
57
|
}
|
|
63
58
|
}
|
|
64
59
|
},
|
package/dist/manifest.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/manifest.ts"],
|
|
4
|
-
"sourcesContent": ["import type { PaperclipPluginManifestV1 } from '@paperclipai/plugin-sdk';\n\nconst manifest: PaperclipPluginManifestV1 = {\n id: 'starlein.paperclip-plugin-company-wizard',\n apiVersion: 1,\n version: '0.4.
|
|
5
|
-
"mappings": ";AAEA,IAAM,WAAsC;AAAA,EAC1C,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,aAAa;AAAA,EACb,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY,CAAC,aAAa,IAAI;AAAA,EAC9B,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,sBAAsB;AAAA,IACpB,MAAM;AAAA,IACN,YAAY;AAAA,MACV,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,QACb,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aACE;AAAA,MACJ;AAAA,MACA,iBAAiB;AAAA,QACf,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,gBAAgB;AAAA,QACd,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA,mBAAmB;AAAA,QACjB,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,
|
|
4
|
+
"sourcesContent": ["import type { PaperclipPluginManifestV1 } from '@paperclipai/plugin-sdk';\n\nconst manifest: PaperclipPluginManifestV1 = {\n id: 'starlein.paperclip-plugin-company-wizard',\n apiVersion: 1,\n version: '0.4.7',\n displayName: 'Company Wizard',\n description: 'AI-powered wizard to bootstrap agent companies from composable templates',\n author: 'Sascha Pietrowski <sp@speednetwork.de>',\n categories: ['workspace', 'ui'],\n capabilities: [\n 'companies.read',\n 'issues.create',\n 'issues.read',\n 'issues.update',\n 'goals.create',\n 'goals.read',\n 'agents.read',\n 'projects.read',\n 'plugin.state.read',\n 'plugin.state.write',\n 'secrets.read-ref',\n 'events.subscribe',\n 'ui.page.register',\n 'ui.sidebar.register',\n ],\n instanceConfigSchema: {\n type: 'object',\n properties: {\n companiesDir: {\n type: 'string',\n description:\n 'Directory where assembled company workspaces are written. Auto-detected: ~/instances/default/companies in Docker setups, ~/.paperclip/instances/default/companies otherwise. Rarely needs manual override.',\n },\n templatesPath: {\n type: 'string',\n description:\n 'Path to the templates directory. Auto-detected: ~/plugin-templates in Docker setups, ~/.paperclip/plugin-templates otherwise. Rarely needs manual override.',\n },\n templatesRepoUrl: {\n type: 'string',\n default: 'https://github.com/starlein/paperclip-plugin-company-wizard/tree/main/templates',\n description:\n 'GitHub tree URL for template downloads. The default is correct for most setups \u2014 only change this if using a custom fork.',\n },\n anthropicApiKey: {\n type: 'string',\n description:\n 'Anthropic API key for the AI wizard (e.g. sk-ant-...). Required to use the AI-powered company setup path.',\n },\n paperclipUrl: {\n type: 'string',\n description:\n 'Paperclip instance URL. Defaults to http://localhost:3100 or the PAPERCLIP_PUBLIC_URL env var.',\n },\n paperclipEmail: {\n type: 'string',\n description: 'Board login email (for authenticated instances).',\n },\n paperclipPassword: {\n type: 'string',\n description: 'Board login password (for authenticated instances).',\n },\n },\n },\n entrypoints: {\n worker: './dist/worker.js',\n ui: './dist/ui',\n },\n ui: {\n slots: [\n {\n type: 'page',\n id: 'company-wizard',\n displayName: 'Company Wizard',\n exportName: 'WizardPage',\n routePath: 'company-creator',\n },\n {\n type: 'sidebar',\n id: 'company-wizard-link',\n displayName: 'Create Company',\n exportName: 'SidebarLink',\n },\n ],\n },\n};\n\nexport default manifest;\n"],
|
|
5
|
+
"mappings": ";AAEA,IAAM,WAAsC;AAAA,EAC1C,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,aAAa;AAAA,EACb,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY,CAAC,aAAa,IAAI;AAAA,EAC9B,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,sBAAsB;AAAA,IACpB,MAAM;AAAA,IACN,YAAY;AAAA,MACV,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,QACb,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aACE;AAAA,MACJ;AAAA,MACA,iBAAiB;AAAA,QACf,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,gBAAgB;AAAA,QACd,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA,mBAAmB;AAAA,QACjB,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,IACF;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,QAAQ;AAAA,IACR,IAAI;AAAA,EACN;AAAA,EACA,IAAI;AAAA,IACF,OAAO;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,WAAW;AAAA,MACb;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,mBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/ui/index.css
CHANGED
|
@@ -66,6 +66,9 @@
|
|
|
66
66
|
"Liberation Mono",
|
|
67
67
|
"Courier New",
|
|
68
68
|
monospace;
|
|
69
|
+
--color-red-400:oklch(70.4% .191 22.216);
|
|
70
|
+
--color-red-500:oklch(63.7% .237 25.331);
|
|
71
|
+
--color-red-700:oklch(50.5% .213 27.518);
|
|
69
72
|
--color-amber-200:oklch(92.4% .12 95.746);
|
|
70
73
|
--color-amber-300:oklch(87.9% .169 91.605);
|
|
71
74
|
--color-amber-400:oklch(82.8% .189 84.429);
|
|
@@ -73,10 +76,14 @@
|
|
|
73
76
|
--color-amber-700:oklch(55.5% .163 48.998);
|
|
74
77
|
--color-amber-800:oklch(47.3% .137 46.201);
|
|
75
78
|
--color-yellow-600:oklch(68.1% .162 75.834);
|
|
79
|
+
--color-green-400:oklch(79.2% .209 151.711);
|
|
80
|
+
--color-green-500:oklch(72.3% .219 149.579);
|
|
76
81
|
--color-green-600:oklch(62.7% .194 149.214);
|
|
82
|
+
--color-green-700:oklch(52.7% .154 150.069);
|
|
77
83
|
--color-blue-400:oklch(70.7% .165 254.624);
|
|
78
84
|
--color-blue-500:oklch(62.3% .214 259.815);
|
|
79
85
|
--color-blue-600:oklch(54.6% .245 262.881);
|
|
86
|
+
--color-blue-700:oklch(48.8% .243 264.376);
|
|
80
87
|
--color-white:#fff;
|
|
81
88
|
--spacing:.25rem;
|
|
82
89
|
--container-xs:20rem;
|
|
@@ -812,6 +819,14 @@
|
|
|
812
819
|
border-color: color-mix(in oklab, var(--color-blue-400) 60%, transparent);
|
|
813
820
|
}
|
|
814
821
|
}
|
|
822
|
+
.border-blue-500\/20 {
|
|
823
|
+
border-color: #3080ff33;
|
|
824
|
+
}
|
|
825
|
+
@supports (color:color-mix(in lab, red, red)) {
|
|
826
|
+
.border-blue-500\/20 {
|
|
827
|
+
border-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent);
|
|
828
|
+
}
|
|
829
|
+
}
|
|
815
830
|
.border-border {
|
|
816
831
|
border-color: var(--border);
|
|
817
832
|
}
|
|
@@ -856,9 +871,25 @@
|
|
|
856
871
|
border-color: color-mix(in oklab, var(--foreground) 30%, transparent);
|
|
857
872
|
}
|
|
858
873
|
}
|
|
874
|
+
.border-green-500\/20 {
|
|
875
|
+
border-color: #00c75833;
|
|
876
|
+
}
|
|
877
|
+
@supports (color:color-mix(in lab, red, red)) {
|
|
878
|
+
.border-green-500\/20 {
|
|
879
|
+
border-color: color-mix(in oklab, var(--color-green-500) 20%, transparent);
|
|
880
|
+
}
|
|
881
|
+
}
|
|
859
882
|
.border-input {
|
|
860
883
|
border-color: var(--input);
|
|
861
884
|
}
|
|
885
|
+
.border-red-500\/20 {
|
|
886
|
+
border-color: #fb2c3633;
|
|
887
|
+
}
|
|
888
|
+
@supports (color:color-mix(in lab, red, red)) {
|
|
889
|
+
.border-red-500\/20 {
|
|
890
|
+
border-color: color-mix(in oklab, var(--color-red-500) 20%, transparent);
|
|
891
|
+
}
|
|
892
|
+
}
|
|
862
893
|
.border-transparent {
|
|
863
894
|
border-color: #0000;
|
|
864
895
|
}
|
|
@@ -893,6 +924,14 @@
|
|
|
893
924
|
.bg-background {
|
|
894
925
|
background-color: var(--background);
|
|
895
926
|
}
|
|
927
|
+
.bg-blue-500\/10 {
|
|
928
|
+
background-color: #3080ff1a;
|
|
929
|
+
}
|
|
930
|
+
@supports (color:color-mix(in lab, red, red)) {
|
|
931
|
+
.bg-blue-500\/10 {
|
|
932
|
+
background-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent);
|
|
933
|
+
}
|
|
934
|
+
}
|
|
896
935
|
.bg-border {
|
|
897
936
|
background-color: var(--border);
|
|
898
937
|
}
|
|
@@ -936,6 +975,14 @@
|
|
|
936
975
|
background-color: color-mix(in oklab, var(--foreground) 10%, transparent);
|
|
937
976
|
}
|
|
938
977
|
}
|
|
978
|
+
.bg-green-500\/10 {
|
|
979
|
+
background-color: #00c7581a;
|
|
980
|
+
}
|
|
981
|
+
@supports (color:color-mix(in lab, red, red)) {
|
|
982
|
+
.bg-green-500\/10 {
|
|
983
|
+
background-color: color-mix(in oklab, var(--color-green-500) 10%, transparent);
|
|
984
|
+
}
|
|
985
|
+
}
|
|
939
986
|
.bg-muted {
|
|
940
987
|
background-color: var(--muted);
|
|
941
988
|
}
|
|
@@ -961,6 +1008,14 @@
|
|
|
961
1008
|
.bg-primary {
|
|
962
1009
|
background-color: var(--primary);
|
|
963
1010
|
}
|
|
1011
|
+
.bg-red-500\/10 {
|
|
1012
|
+
background-color: #fb2c361a;
|
|
1013
|
+
}
|
|
1014
|
+
@supports (color:color-mix(in lab, red, red)) {
|
|
1015
|
+
.bg-red-500\/10 {
|
|
1016
|
+
background-color: color-mix(in oklab, var(--color-red-500) 10%, transparent);
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
964
1019
|
.bg-secondary {
|
|
965
1020
|
background-color: var(--secondary);
|
|
966
1021
|
}
|
|
@@ -1145,9 +1200,15 @@
|
|
|
1145
1200
|
.text-background {
|
|
1146
1201
|
color: var(--background);
|
|
1147
1202
|
}
|
|
1203
|
+
.text-blue-500 {
|
|
1204
|
+
color: var(--color-blue-500);
|
|
1205
|
+
}
|
|
1148
1206
|
.text-blue-600 {
|
|
1149
1207
|
color: var(--color-blue-600);
|
|
1150
1208
|
}
|
|
1209
|
+
.text-blue-700 {
|
|
1210
|
+
color: var(--color-blue-700);
|
|
1211
|
+
}
|
|
1151
1212
|
.text-card-foreground {
|
|
1152
1213
|
color: var(--card-foreground);
|
|
1153
1214
|
}
|
|
@@ -1179,9 +1240,15 @@
|
|
|
1179
1240
|
color: color-mix(in oklab, var(--foreground) 80%, transparent);
|
|
1180
1241
|
}
|
|
1181
1242
|
}
|
|
1243
|
+
.text-green-500 {
|
|
1244
|
+
color: var(--color-green-500);
|
|
1245
|
+
}
|
|
1182
1246
|
.text-green-600 {
|
|
1183
1247
|
color: var(--color-green-600);
|
|
1184
1248
|
}
|
|
1249
|
+
.text-green-700 {
|
|
1250
|
+
color: var(--color-green-700);
|
|
1251
|
+
}
|
|
1185
1252
|
.text-muted-foreground,
|
|
1186
1253
|
.text-muted-foreground\/40 {
|
|
1187
1254
|
color: var(--muted-foreground);
|
|
@@ -1213,6 +1280,12 @@
|
|
|
1213
1280
|
.text-primary-foreground {
|
|
1214
1281
|
color: var(--primary-foreground);
|
|
1215
1282
|
}
|
|
1283
|
+
.text-red-500 {
|
|
1284
|
+
color: var(--color-red-500);
|
|
1285
|
+
}
|
|
1286
|
+
.text-red-700 {
|
|
1287
|
+
color: var(--color-red-700);
|
|
1288
|
+
}
|
|
1216
1289
|
.text-secondary-foreground {
|
|
1217
1290
|
color: var(--secondary-foreground);
|
|
1218
1291
|
}
|
|
@@ -1534,6 +1607,9 @@
|
|
|
1534
1607
|
.sm\:grid-cols-2 {
|
|
1535
1608
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
1536
1609
|
}
|
|
1610
|
+
.sm\:grid-cols-3 {
|
|
1611
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
1612
|
+
}
|
|
1537
1613
|
}
|
|
1538
1614
|
.dark\:border-blue-500\/50:is(.dark *) {
|
|
1539
1615
|
border-color: #3080ff80;
|
|
@@ -1563,6 +1639,12 @@
|
|
|
1563
1639
|
.dark\:text-blue-400:is(.dark *) {
|
|
1564
1640
|
color: var(--color-blue-400);
|
|
1565
1641
|
}
|
|
1642
|
+
.dark\:text-green-400:is(.dark *) {
|
|
1643
|
+
color: var(--color-green-400);
|
|
1644
|
+
}
|
|
1645
|
+
.dark\:text-red-400:is(.dark *) {
|
|
1646
|
+
color: var(--color-red-400);
|
|
1647
|
+
}
|
|
1566
1648
|
.\[\&_svg\]\:pointer-events-none svg {
|
|
1567
1649
|
pointer-events: none;
|
|
1568
1650
|
}
|