@papi-ai/shared
Advanced tools
+39
-3
@@ -34,2 +34,17 @@ // src/core.ts | ||
| var CAPABILITY_REGISTRY = [ | ||
| // task-3384: the PLAN step. The landing page has advertised these three since | ||
| // the v5 control beat (components/marketing/landing/ControlC.tsx) with a code | ||
| // comment reading "shipping soon, shown now" — the registry had no plan-step | ||
| // entry at all, so the Planning group rendered empty and was dropped. These | ||
| // are NOT new behaviour: each one gates a section of the planner instructions | ||
| // that already runs on every full-mode plan, so ON reproduces today exactly. | ||
| // | ||
| // All three default ON. Turning one off removes its step from the planner | ||
| // prompt, which is the whole mechanism — the planner does what the prompt | ||
| // tells it to, so an omitted step is genuinely not performed (and the matching | ||
| // plan-prepare progress checkpoint is not recorded, so the hub does not claim | ||
| // a step that never ran). | ||
| { key: "planHealthCheck", label: "Health check", description: "Flags cycle gaps, stale tasks and AD conflicts before planning.", step: "plan" }, | ||
| { key: "backlogTriage", label: "Backlog triage", description: "Cleans up and prioritises unreviewed backlog items during planning.", step: "plan" }, | ||
| { key: "buildOrder", label: "Build order", description: "Detects intra-cycle dependencies and sequences the build.", step: "plan" }, | ||
| { key: "prReviewer", label: "Auto code review", description: "Runs a code review of the branch diff before accepting.", step: "review" }, | ||
@@ -96,3 +111,3 @@ { key: "securityScan", label: "Security scan", description: "Flags a security pass on risk-tier changes at review time.", step: "review" }, | ||
| } | ||
| var RETIRED_DECISION_OUTCOMES = ["resolved", "abandoned", "superseded", "demoted"]; | ||
| var RETIRED_DECISION_OUTCOMES = ["abandoned", "demoted"]; | ||
| var ASSIGNABLE_CONTRIBUTOR_ROLES = ["editor", "viewer"]; | ||
@@ -178,2 +193,11 @@ var DEFAULT_CONTRIBUTOR_ROLE = "viewer"; | ||
| } | ||
| var DECISION_TYPES = [ | ||
| "product", | ||
| "design", | ||
| "engineering", | ||
| "business", | ||
| "scope", | ||
| "process" | ||
| ]; | ||
| var PROPOSAL_EVENT_TYPES = ["proposed", "position_added", "withdrawn"]; | ||
@@ -183,3 +207,3 @@ // src/deployment.ts | ||
| var HOSTED_MCP_URL = "https://mcp.getpapi.ai"; | ||
| var HOSTED_SUPABASE_URL = "https://guewgygcpcmrcoppihzx.supabase.co"; | ||
| var HOSTED_SUPABASE_URL = "https://api.getpapi.ai"; | ||
| function optionalBoolean(value, fallback) { | ||
@@ -203,3 +227,2 @@ if (value == null || value.trim() === "") return fallback; | ||
| vercel: optionalBoolean(env.vercelEnabled, !selfHosted), | ||
| railway: optionalBoolean(env.railwayEnabled, !selfHosted), | ||
| managedSupabase: optionalBoolean(env.managedSupabaseEnabled, !selfHosted) | ||
@@ -568,2 +591,3 @@ }, | ||
| "DEPLOY VERIFICATION", | ||
| "REFERENCE DOCS", | ||
| "PRE-BUILD VERIFICATION", | ||
@@ -643,2 +667,3 @@ "FILES LIKELY TOUCHED", | ||
| securityConsiderations: (sections.get("SECURITY CONSIDERATIONS") ?? "").trim(), | ||
| referenceDocs: parseBulletsOnly(sections.get("REFERENCE DOCS") ?? ""), | ||
| verificationFiles: parseBulletsOnly(sections.get("PRE-BUILD VERIFICATION") ?? ""), | ||
@@ -672,2 +697,3 @@ filesLikelyTouched: parseBulletList(sections.get("FILES LIKELY TOUCHED") ?? ""), | ||
| securityConsiderations: str(fields.securityConsiderations), | ||
| referenceDocs: ensureArray(fields.referenceDocs), | ||
| verificationFiles: ensureArray(fields.verificationFiles), | ||
@@ -727,2 +753,10 @@ filesLikelyTouched: ensureArray(fields.filesLikelyTouched), | ||
| lines.push(handoff.securityConsiderations ?? ""); | ||
| const referenceDocs = ensureArray(handoff.referenceDocs); | ||
| if (referenceDocs.length > 0) { | ||
| lines.push(""); | ||
| lines.push("REFERENCE DOCS"); | ||
| for (const item of referenceDocs) { | ||
| lines.push(`- ${item}`); | ||
| } | ||
| } | ||
| const verificationFiles = ensureArray(handoff.verificationFiles); | ||
@@ -1384,5 +1418,7 @@ if (verificationFiles.length > 0) { | ||
| CAPABILITY_REGISTRY, | ||
| DECISION_TYPES, | ||
| DEFAULT_CONTRIBUTOR_ROLE, | ||
| EMPTY_ESCAPED_SIGNAL, | ||
| MIN_REASON_LENGTH, | ||
| PROPOSAL_EVENT_TYPES, | ||
| RETIRED_DECISION_OUTCOMES, | ||
@@ -1389,0 +1425,0 @@ SENSITIVE_CHANGELOG_PATTERNS, |
+1
-1
| { | ||
| "name": "@papi-ai/shared", | ||
| "version": "0.2.5", | ||
| "version": "0.2.6", | ||
| "description": "Shared PAPI contract: the PapiAdapter interface, every entity type, business rules and markdown parsers — used by the MCP server, the pg adapter and the dashboard", | ||
@@ -5,0 +5,0 @@ "license": "Elastic-2.0", |
Sorry, the diff of this file is too big to display
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
223446
4.45%4740
3.61%