@starlein/paperclip-plugin-company-wizard 0.4.12 → 0.4.13
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 +12 -0
- package/dist/manifest.js +1 -1
- package/dist/manifest.js.map +1 -1
- package/dist/worker.js +15 -3
- package/dist/worker.js.map +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,18 @@ 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.13] - 2026-06-25
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
**Worker agents default to `auto` thinking effort, and per-role adapter levels now reach provisioning**
|
|
12
|
+
|
|
13
|
+
Provisioned worker (non-CEO) agents were pinned to `thinkingLevel`/`modelReasoningEffort: "medium"`, and the `"thinkingLevel": "auto"` declared in each `role.meta.json` was silently dropped at provisioning time — the `roleAdapterOverrides` passed to `buildWorkerAdapterConfig` were assembled only from **module** `adapterOverrides`, never from the role's own `adapter` block. So every worker ran at a flat `medium` regardless of its template.
|
|
14
|
+
|
|
15
|
+
- `DEFAULT_WORKER_THINKING_LEVEL` changed from `medium` to `auto` — let the model pick effort per task instead of pinning a flat level. The CEO default is unchanged (`high`, still inherits the wizard's explicit setting).
|
|
16
|
+
- `assembleCompany` now seeds `roleAdapterOverrides` from each role's `role.meta.json` adapter (`thinkingLevel` / `modelReasoningEffort` / `reasoningEffort` / `effort`), so a role's declared level reaches the provisioned agent. Module `adapterOverrides` still merge on top (module wins).
|
|
17
|
+
- `buildAdapterConfig` now also resolves an override expressed as `effort`, and strips the raw thinking keys before re-applying the resolved level per adapter — so a non-codex adapter no longer carries a stray `thinkingLevel`.
|
|
18
|
+
|
|
7
19
|
## [0.4.12] - 2026-06-25
|
|
8
20
|
|
|
9
21
|
### Changed
|
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.13",
|
|
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>",
|
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.
|
|
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.13',\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
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/worker.js
CHANGED
|
@@ -9282,7 +9282,7 @@ import { join } from "node:path";
|
|
|
9282
9282
|
var DEFAULT_CEO_ADAPTER_TYPE = "codex_local";
|
|
9283
9283
|
var DEFAULT_CEO_MODEL = "gpt-5.5";
|
|
9284
9284
|
var DEFAULT_CEO_THINKING_LEVEL = "high";
|
|
9285
|
-
var DEFAULT_WORKER_THINKING_LEVEL = "
|
|
9285
|
+
var DEFAULT_WORKER_THINKING_LEVEL = "auto";
|
|
9286
9286
|
var DEFAULT_CEO_MAX_CONCURRENT_RUNS = 1;
|
|
9287
9287
|
var DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC = 3600;
|
|
9288
9288
|
var DEFAULT_CLAUDE_CEO_MODEL = "claude-opus-4-6";
|
|
@@ -9306,7 +9306,7 @@ function buildAdapterConfig({
|
|
|
9306
9306
|
const defaultModel = adapterType === "claude_local" ? DEFAULT_CLAUDE_CEO_MODEL : DEFAULT_CEO_MODEL;
|
|
9307
9307
|
const model = userModel || overrideModel || defaultModel;
|
|
9308
9308
|
const userThinking = inheritUserThinking ? asTrimmedString(userCeoAdapter.thinkingLevel) || asTrimmedString(userCeoAdapter.modelReasoningEffort) || asTrimmedString(userCeoAdapter.reasoningEffort) : "";
|
|
9309
|
-
const thinkingLevel = userThinking || asTrimmedString(roleAdapterOverrides.thinkingLevel) || asTrimmedString(roleAdapterOverrides.modelReasoningEffort) || asTrimmedString(roleAdapterOverrides.reasoningEffort) || defaultThinkingLevel;
|
|
9309
|
+
const thinkingLevel = userThinking || asTrimmedString(roleAdapterOverrides.thinkingLevel) || asTrimmedString(roleAdapterOverrides.modelReasoningEffort) || asTrimmedString(roleAdapterOverrides.reasoningEffort) || asTrimmedString(roleAdapterOverrides.effort) || defaultThinkingLevel;
|
|
9310
9310
|
const adapterConfig = {
|
|
9311
9311
|
...roleAdapterOverrides,
|
|
9312
9312
|
cwd: userCwd || companyDir,
|
|
@@ -9314,6 +9314,10 @@ function buildAdapterConfig({
|
|
|
9314
9314
|
};
|
|
9315
9315
|
delete adapterConfig.promptTemplate;
|
|
9316
9316
|
delete adapterConfig.bootstrapPromptTemplate;
|
|
9317
|
+
delete adapterConfig.thinkingLevel;
|
|
9318
|
+
delete adapterConfig.modelReasoningEffort;
|
|
9319
|
+
delete adapterConfig.reasoningEffort;
|
|
9320
|
+
delete adapterConfig.effort;
|
|
9317
9321
|
if (adapterType === "codex_local") {
|
|
9318
9322
|
adapterConfig.modelReasoningEffort = thinkingLevel;
|
|
9319
9323
|
adapterConfig.thinkingLevel = thinkingLevel;
|
|
@@ -9526,6 +9530,14 @@ async function assembleCompany({
|
|
|
9526
9530
|
const initialRoutines = Array.isArray(presetRoutines) ? presetRoutines.map((routine) => ({ ...routine, source: routine.source || "preset" })) : [];
|
|
9527
9531
|
const explicitBootstrapLabels = Array.isArray(presetLabels) ? [...presetLabels] : [];
|
|
9528
9532
|
const roleAdapterOverrides = /* @__PURE__ */ new Map();
|
|
9533
|
+
for (const role of allRoles) {
|
|
9534
|
+
const roleMeta = roleMetaByName.get(role) || {};
|
|
9535
|
+
const adapter = roleMeta && typeof roleMeta.adapter === "object" ? roleMeta.adapter : {};
|
|
9536
|
+
const thinkingLevel = typeof adapter.thinkingLevel === "string" && adapter.thinkingLevel.trim() || typeof adapter.modelReasoningEffort === "string" && adapter.modelReasoningEffort.trim() || typeof adapter.reasoningEffort === "string" && adapter.reasoningEffort.trim() || typeof adapter.effort === "string" && adapter.effort.trim() || "";
|
|
9537
|
+
if (thinkingLevel) {
|
|
9538
|
+
roleAdapterOverrides.set(role, { thinkingLevel });
|
|
9539
|
+
}
|
|
9540
|
+
}
|
|
9529
9541
|
const docRoleMap = /* @__PURE__ */ new Map();
|
|
9530
9542
|
const addDocRoles = (docName, roles) => {
|
|
9531
9543
|
const set = docRoleMap.get(docName) ?? /* @__PURE__ */ new Set();
|
|
@@ -11011,7 +11023,7 @@ var __dirname = path2.dirname(fileURLToPath2(import.meta.url));
|
|
|
11011
11023
|
var DEFAULT_TEMPLATES_REPO_URL = "https://github.com/starlein/paperclip-plugin-company-wizard/tree/main/templates";
|
|
11012
11024
|
var BUNDLED_TEMPLATES_DIR = path2.resolve(__dirname, "..", "templates");
|
|
11013
11025
|
var PLUGIN_PACKAGE_NAME = "@starlein/paperclip-plugin-company-wizard";
|
|
11014
|
-
var CURRENT_PLUGIN_VERSION = "0.4.
|
|
11026
|
+
var CURRENT_PLUGIN_VERSION = "0.4.13";
|
|
11015
11027
|
var NPM_LATEST_URL = "https://registry.npmjs.org/@starlein%2Fpaperclip-plugin-company-wizard/latest";
|
|
11016
11028
|
function copyDirSync(src, dest) {
|
|
11017
11029
|
fs2.mkdirSync(dest, { recursive: true });
|