@adhdev/daemon-standalone 0.9.82-rc.164 → 0.9.82-rc.165

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/index.js CHANGED
@@ -39750,14 +39750,15 @@ Next step: ${nextStep}`;
39750
39750
  minItems: 1,
39751
39751
  items: {
39752
39752
  type: "object",
39753
- required: ["scriptDir"],
39753
+ required: ["ideVersion"],
39754
39754
  additionalProperties: false,
39755
39755
  properties: {
39756
39756
  ideVersion: { type: "string", description: "SemVer range." },
39757
- scriptDir: { type: "string", pattern: "^scripts/[^/]+$" }
39757
+ scriptDir: { type: "string", pattern: "^scripts/[^/]+$" },
39758
+ spec: { type: "string", pattern: "^specs/[^/]+\\.json$", description: "Path to declarative spec.json driving SpecCliAdapter for this version range." }
39758
39759
  }
39759
39760
  },
39760
- description: "Maps installed agent versions to script subdirectories."
39761
+ description: "Maps installed agent versions to script subdirectories and/or declarative specs."
39761
39762
  },
39762
39763
  defaultScriptDir: {
39763
39764
  type: "string",
@@ -45354,9 +45355,17 @@ ${lastSnapshot}`;
45354
45355
  });
45355
45356
  if (out.startsWith("~/")) out = path24.join(os17.homedir(), out.slice(2));
45356
45357
  const now = /* @__PURE__ */ new Date();
45358
+ const workspaceRaw = input.workspace ?? "";
45359
+ let workspaceResolved = workspaceRaw;
45360
+ if (workspaceRaw) {
45361
+ try {
45362
+ workspaceResolved = fs12.realpathSync(workspaceRaw);
45363
+ } catch {
45364
+ }
45365
+ }
45357
45366
  const vars = {
45358
- cwd: input.workspace ?? "",
45359
- cwd_dashed: (input.workspace ?? "").replace(/\//g, "-"),
45367
+ cwd: workspaceResolved,
45368
+ cwd_dashed: workspaceResolved.replace(/\//g, "-"),
45360
45369
  session_id: input.providerSessionId || input.sessionId || input.historySessionId || "",
45361
45370
  yyyy: String(now.getUTCFullYear()),
45362
45371
  mm: String(now.getUTCMonth() + 1).padStart(2, "0"),
@@ -61832,6 +61841,15 @@ ${formatManifestValidationIssues2(validation.issues)}`,
61832
61841
  cliType;
61833
61842
  cliName;
61834
61843
  workingDir;
61844
+ /**
61845
+ * Marker the daemon's finalization gate checks: `getStatus()` returns
61846
+ * `messages: []` by design here (chat history lives in the daemon's
61847
+ * native-history pipeline, not the adapter). Without this flag,
61848
+ * cli-provider-instance's `missing_final_assistant` gate would stall
61849
+ * every turn until the 30s safety timeout because it expects the
61850
+ * adapter to surface the final assistant message.
61851
+ */
61852
+ chatMessagesOwnedExternally = true;
61835
61853
  driver;
61836
61854
  spec;
61837
61855
  lastEvent = null;
@@ -62807,7 +62825,10 @@ ${formatManifestValidationIssues2(validation.issues)}`,
62807
62825
  return { reason: `parsed_status:${parsedStatus}`, terminal: isCliGeneratingLikeStatus(parsedStatus) };
62808
62826
  }
62809
62827
  if (parsed?.activeModal || parsed?.modal) return { reason: "parsed_modal_active", terminal: true };
62810
- if (!this.completionHasFinalAssistantMessage(parsed?.messages)) return { reason: "missing_final_assistant" };
62828
+ const adapterOwnsMessagesElsewhere = this.adapter?.chatMessagesOwnedExternally === true;
62829
+ if (!adapterOwnsMessagesElsewhere && !this.completionHasFinalAssistantMessage(parsed?.messages)) {
62830
+ return { reason: "missing_final_assistant" };
62831
+ }
62811
62832
  try {
62812
62833
  const screenText = typeof this.adapter.getScreenText === "function" ? String(this.adapter.getScreenText() || "") : "";
62813
62834
  if (screenText) {
@@ -66848,16 +66869,20 @@ Run 'adhdev doctor' for detailed diagnostics.`
66848
66869
  let matched = false;
66849
66870
  for (const entry of compat) {
66850
66871
  if (this.matchesVersion(currentVersion, entry.ideVersion)) {
66851
- const loaded = this.loadScriptsFromDir(type, entry.scriptDir);
66852
- if (loaded) {
66853
- resolved.scripts = loaded;
66854
- this.debugLog(` [compatibility] ${type} v${currentVersion} \u2192 ${entry.scriptDir}`);
66855
- resolved._resolvedScriptDir = entry.scriptDir;
66856
- resolved._resolvedScriptsSource = `compatibility:${entry.ideVersion}`;
66857
- if (providerDir) {
66858
- const fullDir = path30.join(providerDir, entry.scriptDir);
66859
- resolved._resolvedScriptsPath = fs18.existsSync(path30.join(fullDir, "scripts.js")) ? path30.join(fullDir, "scripts.js") : fullDir;
66872
+ if (entry.scriptDir) {
66873
+ const loaded = this.loadScriptsFromDir(type, entry.scriptDir);
66874
+ if (loaded) {
66875
+ resolved.scripts = loaded;
66876
+ this.debugLog(` [compatibility] ${type} v${currentVersion} \u2192 ${entry.scriptDir}`);
66877
+ resolved._resolvedScriptDir = entry.scriptDir;
66878
+ resolved._resolvedScriptsSource = `compatibility:${entry.ideVersion}`;
66879
+ if (providerDir) {
66880
+ const fullDir = path30.join(providerDir, entry.scriptDir);
66881
+ resolved._resolvedScriptsPath = fs18.existsSync(path30.join(fullDir, "scripts.js")) ? path30.join(fullDir, "scripts.js") : fullDir;
66882
+ }
66883
+ matched = true;
66860
66884
  }
66885
+ } else {
66861
66886
  matched = true;
66862
66887
  }
66863
66888
  break;