Fix CI publish failures and add missing config schema fields

- CI publish job failed because it tried to re-publish existing versions
  (npm returns 404 for scoped packages on duplicate version). Added a
  version-exists check before npm publish to skip gracefully.
- Also fixed the auth env var from NPM_TOKEN to NODE_AUTH_TOKEN which
  is what actions/setup-node's registry-url option expects.
- Added missing core and operational fields to getConfigSchema() so the
  Paperclip UI surfaces model, effort, maxTurnsPerRun, skipPermissions,
  instructionsFilePath, timeoutSec, and graceSec alongside existing K8s
  infrastructure fields.
- Bumped version to 0.1.10.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-04-12 15:02:54 +00:00
parent 545950daf2
commit e75a62b329
3 changed files with 68 additions and 3 deletions
+57
View File
@@ -24,6 +24,63 @@ interface AdapterConfigSchema {
export function getConfigSchema(): AdapterConfigSchema {
const fields: ConfigFieldSchema[] = [
// Core Claude fields
{
type: "select",
key: "model",
label: "Model",
hint: "Claude model to use for this agent.",
options: [
{ value: "claude-opus-4-6", label: "Claude Opus 4.6" },
{ value: "claude-sonnet-4-6", label: "Claude Sonnet 4.6" },
{ value: "claude-haiku-4-6", label: "Claude Haiku 4.6" },
{ value: "claude-sonnet-4-5-20250929", label: "Claude Sonnet 4.5" },
{ value: "claude-haiku-4-5-20251001", label: "Claude Haiku 4.5" },
],
},
{
type: "select",
key: "effort",
label: "Reasoning Effort",
hint: "Reasoning effort level passed via --effort.",
options: [
{ value: "low", label: "Low" },
{ value: "medium", label: "Medium" },
{ value: "high", label: "High" },
],
},
{
type: "number",
key: "maxTurnsPerRun",
label: "Max Turns Per Run",
hint: "Maximum number of turns for a single run. 0 means unlimited.",
},
{
type: "toggle",
key: "dangerouslySkipPermissions",
label: "Skip Permissions",
hint: "Pass --dangerously-skip-permissions to Claude. Enabled by default for unattended K8s Jobs.",
default: true,
},
{
type: "text",
key: "instructionsFilePath",
label: "Instructions File Path",
hint: "Absolute path to a markdown instructions file injected at runtime via --append-system-prompt-file.",
},
// Operational
{
type: "number",
key: "timeoutSec",
label: "Timeout (seconds)",
hint: "Run timeout in seconds. 0 means no timeout.",
},
{
type: "number",
key: "graceSec",
label: "Grace Period (seconds)",
hint: "Additional grace period before adapter gives up after Job deadline. Default: 60.",
},
// Kubernetes
{
type: "text",