@appchy/jarvis 0.1.88 → 0.1.89

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/dist/bin.js CHANGED
@@ -8478,22 +8478,31 @@ function planScope(ctx, req) {
8478
8478
  anticipated,
8479
8479
  editCodeNodes,
8480
8480
  governance,
8481
- obligations: toObligations(governance),
8481
+ obligations: toObligations(governance, anticipated),
8482
8482
  references,
8483
8483
  testsCovering,
8484
8484
  blastRadius,
8485
8485
  lowConfidence
8486
8486
  };
8487
8487
  }
8488
- function toObligations(governance) {
8489
- return governance.map((g) => {
8488
+ function toObligations(governance, existing = []) {
8489
+ const rules = governance.map((g) => {
8490
8490
  const full = g.body !== void 0;
8491
8491
  return {
8492
+ type: "governance",
8492
8493
  id: g.id,
8493
8494
  full,
8494
8495
  statement: full ? `Its full text is here. Say how the plan satisfies it, or why it does not apply.` : `Not read yet \u2014 only its title arrived. Read it, then say how the plan satisfies it.`
8495
8496
  };
8496
8497
  });
8498
+ return [
8499
+ ...rules,
8500
+ ...existing.map((e) => ({
8501
+ type: "existing",
8502
+ id: e.line === void 0 ? e.file : `${e.file}:${e.line}`,
8503
+ statement: `Already in the tree and close to what was described. Reuse it, or say why the plan builds alongside it.`
8504
+ }))
8505
+ ];
8497
8506
  }
8498
8507
  function isCodeHit(hit) {
8499
8508
  return hit.file !== void 0 && hit.id === void 0;
@@ -9120,8 +9129,9 @@ async function scope(ctx, req) {
9120
9129
  const rules = await readRules(ctx, plan.governance, req.rules);
9121
9130
  const topFiles = plan.editSet.slice(0, 3).map((e) => e.file).join(", ");
9122
9131
  const topGov = plan.governance.filter((g) => g.body === void 0).slice(0, 3).map((g) => g.id).join(", ");
9123
- const unread = plan.obligations.filter((o) => !o.full).length;
9124
- const summary = plan.lowConfidence ? `Low-confidence (build-new) scope for "${req.task}": no code strongly matched \u2014 ${plan.anticipated.length} integration point(s) to READ, not edit; ${plan.governance.length} concept-matched governance. Lead with search + read.` : `Scoped "${req.task}": ${plan.editSet.length} edit target(s), ${plan.governance.length} governance, ${plan.testsCovering.length} covering test(s), blast radius ${plan.blastRadius.total} (${confidence})${topFiles ? ` \u2014 ${topFiles}` : ""}.${rules.ids > 0 && topGov ? ` ${rules.full} rule(s) came back in full; NEXT: read ${topGov} for the ${rules.ids} that did not,` : rules.full > 0 ? ` All ${rules.full} governing rule(s) came back in FULL \u2014 read them here, not with map_read;` : " NEXT:"} then check the edit-set with map_scope {edits} before you commit.${plan.obligations.length > 0 ? ` ${plan.obligations.length} obligation(s) outstanding${unread > 0 ? `, ${unread} of them not yet read` : ""} \u2014 see \`obligations\`.` : ""}`;
9132
+ const unread = plan.obligations.filter((o) => o.type === "governance" && !o.full).length;
9133
+ const reuse = plan.obligations.filter((o) => o.type === "existing").length;
9134
+ const summary = plan.lowConfidence ? `Low-confidence (build-new) scope for "${req.task}": no code strongly matched \u2014 ${plan.anticipated.length} integration point(s) to READ, not edit; ${plan.governance.length} concept-matched governance. Lead with search + read.` : `Scoped "${req.task}": ${plan.editSet.length} edit target(s), ${plan.governance.length} governance, ${plan.testsCovering.length} covering test(s), blast radius ${plan.blastRadius.total} (${confidence})${topFiles ? ` \u2014 ${topFiles}` : ""}.${rules.ids > 0 && topGov ? ` ${rules.full} rule(s) came back in full; NEXT: read ${topGov} for the ${rules.ids} that did not,` : rules.full > 0 ? ` All ${rules.full} governing rule(s) came back in FULL \u2014 read them here, not with map_read;` : " NEXT:"} then check the edit-set with map_scope {edits} before you commit.${plan.obligations.length > 0 ? ` ${plan.obligations.length} obligation(s) outstanding${unread > 0 ? `, ${unread} rule(s) not yet read` : ""}${reuse > 0 ? `, ${reuse} thing(s) that already exist` : ""} \u2014 see \`obligations\`.` : ""}`;
9125
9135
  return {
9126
9136
  summary,
9127
9137
  task: req.task,
@@ -10128,7 +10138,7 @@ import { createRequire as createRequire2 } from "module";
10128
10138
  var _require = createRequire2(import.meta.url);
10129
10139
  var VERSION2 = _require("../package.json").version ?? "0.0.0";
10130
10140
  var IS_DEV = String(_require("../package.json").name ?? "").endsWith("-dev");
10131
- var SHA = "c469cb4";
10141
+ var SHA = "ec7e216";
10132
10142
  var BUILT = "2026-09-11";
10133
10143
  var BUILD = SHA ?? "source";
10134
10144
  var BUILD_LABEL = `${SHA ? `${VERSION2} (${SHA}${BUILT ? ` ${BUILT}` : ""})` : `${VERSION2} (source)`}${IS_DEV ? " \u2014 development build" : ""}`;