@engineeros/connector 0.13.4 → 0.14.0

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/README.md CHANGED
@@ -47,7 +47,7 @@ npx --yes @engineeros/connector@latest pair PAIRING-CODE --url https://your-engi
47
47
 
48
48
  The connector uploads a bounded ZIP snapshot for a safe file inventory, then stays online for deep assessments, rescans, and Goal Runs. Inventory never executes repository code. It excludes known secrets, dependency directories, build output, compiled binaries, files larger than 5 MB, agent-tool caches, Git metadata, and connector state before upload.
49
49
 
50
- From **Project steering -> Workspace**, run the workspace assessment to use the connected agent subscription already authenticated on that computer. Select Architecture, Capabilities, Quality, or any combination when only part of the workspace needs reassessment. EngineerOS stores every completed assessment stage, resumes unfinished work after a connector restart, retry, or temporary connection loss, and then synthesizes the selected results into System State. After the capability catalog is accepted, the connector runs up to three isolated read-only capability workers concurrently; each result, live output, validation correction, and retry remains independently durable. The connector prints each worker's safe activity and elapsed time every 30 seconds, stops a worker that produces no agent activity for ten minutes instead of waiting indefinitely, and gives an incomplete report one bounded correction turn instead of repeatedly restarting it. Assessment cannot modify the workspace.
50
+ From **Project steering -> Workspace**, run the workspace assessment to use the connected agent subscription already authenticated on that computer. Select any combination of fifteen brownfield evidence domains, collectively covering 133 baseline checks from product and architecture through security, privacy, project-specific compliance, delivery, reliability, governance, and modernization planning. Every domain uses a detailed structured-Markdown contract. EngineerOS stores each completed stage, resumes unfinished work after a connector restart, retry, or temporary connection loss, and then synthesizes the selected results into System State. Connector `0.14.0` runs up to three dependency-ready read-only assessment workers concurrently; capability detail and project-specific compliance controls fan out after their catalogs, and final synthesis waits for every selected result. Compliance findings describe repository-verifiable engineering readiness and missing external evidence, never legal compliance or certification. Each result, live output, validation correction, and retry remains independently durable. The connector prints each worker's safe activity and elapsed time every 30 seconds, stops a worker that produces no agent activity for ten minutes instead of waiting indefinitely, and gives an incomplete report one bounded correction turn instead of repeatedly restarting it. Assessment cannot modify the workspace.
51
51
 
52
52
  After onboarding, every project prompt is routed to this connection. Copilot, shaping, planning, architecture, and experience generation use the connected agent subscription and workspace context. Interactive prompts run independently from assessments and Goal scheduling. Prompt runs are read-only; only an explicitly registered Goal Run receives workspace-write access. If the connector is offline, EngineerOS asks the user to reconnect instead of silently switching models.
53
53
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@engineeros/connector",
3
- "version": "0.13.4",
3
+ "version": "0.14.0",
4
4
  "description": "Connect a local coding agent to EngineerOS, using ACP when supported.",
5
5
  "private": false,
6
6
  "type": "module",
package/src/runner.mjs CHANGED
@@ -845,18 +845,10 @@ function assessmentCommandMilestone(command) {
845
845
 
846
846
  export function workspaceAssessmentExecution(assignment) {
847
847
  const stage = assignment?.stage;
848
- const requiredOutputHeading =
849
- stage === "synthesis"
850
- ? "# Assessment Stage: Synthesis"
851
- : stage === "capability_catalog"
852
- ? "# Assessment Stage: Capability Catalog"
853
- : String(stage || "").startsWith("capability:")
854
- ? "# Assessment Stage: Capabilities"
855
- : `# Assessment Stage: ${String(stage || "").replace(/^./, (value) => value.toUpperCase())}`;
856
- if (
857
- !new Set(["architecture", "capability_catalog", "quality", "synthesis"]).has(stage) &&
858
- !String(stage || "").startsWith("capability:")
859
- ) {
848
+ const requiredOutputHeading = String(
849
+ assignment?.required_output_heading || "",
850
+ ).trim();
851
+ if (!stage || !requiredOutputHeading.startsWith("# Assessment Stage: ")) {
860
852
  throw new Error("EngineerOS assessment assignment has an unsupported stage.");
861
853
  }
862
854
  return {
@@ -1003,13 +995,13 @@ export function enqueueWorkspaceAssessment(
1003
995
  export function takeWorkspaceAssessmentWave(queue, activeCount, limit = 3) {
1004
996
  const available = Math.max(0, limit - activeCount);
1005
997
  if (!available || !queue.length) return [];
1006
- if (!String(queue[0]?.stage || "").startsWith("capability:")) {
998
+ if (queue[0]?.parallelizable !== true) {
1007
999
  return activeCount === 0 ? queue.splice(0, 1) : [];
1008
1000
  }
1009
1001
  const wave = [];
1010
1002
  while (
1011
1003
  wave.length < available &&
1012
- String(queue[0]?.stage || "").startsWith("capability:")
1004
+ queue[0]?.parallelizable === true
1013
1005
  ) {
1014
1006
  wave.push(queue.shift());
1015
1007
  }