dsh-ntr 0.3.3 → 0.3.5

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.
@@ -248,6 +248,14 @@ export declare function childEnv(parent: NodeJS.ProcessEnv, extra: Record<string
248
248
  * anything unusable is skipped silently.
249
249
  */
250
250
  export declare function parseCatalogOptions(configOptions: unknown): AcpAgentCatalog;
251
+ /**
252
+ * Whether a payload names ONE model selector without relying on category
253
+ * alone. When an agent publishes several `category: 'model'` options and none
254
+ * is explicitly the `model` id, the category is not trustworthy enough to
255
+ * reject the user's pick — callers must fail open instead of reporting
256
+ * `model_unavailable`.
257
+ */
258
+ export declare function hasUnambiguousModelSelector(configOptions: unknown): boolean;
251
259
  /**
252
260
  * Fold one per-session option answer's SHAPE into an agent-level catalog.
253
261
  *
@@ -545,6 +553,23 @@ export interface SessionLogLike {
545
553
  agentPreset?: unknown;
546
554
  };
547
555
  }
556
+ /**
557
+ * Structural view of a LIVE host session that can take catalog appends. The
558
+ * host's `Session.append` validates the payload before committing; an older
559
+ * host without the `subagent/catalog` event accepts the method but throws,
560
+ * which the helper below treats as "not supported".
561
+ */
562
+ export interface SessionCatalogLike extends SessionLogLike {
563
+ append?: (type: string, data: Record<string, unknown>) => unknown;
564
+ }
565
+ /**
566
+ * Record one ACP-side worker in the host's parent-owned subagent catalog as an
567
+ * EXTERNAL execution. Display-only: external entries have no child session, no
568
+ * activity/timing and no continuation, and `list_agents` omits them. The
569
+ * catalog is append-only, so a replayed/resumed dispatch must never add the
570
+ * same `childId` twice. Returns whether a new fact was appended.
571
+ */
572
+ export declare function appendExternalSubagentCatalog(session: SessionCatalogLike | undefined, childId: string, label: string, now?: number): boolean;
548
573
  /**
549
574
  * The agent preset a session actually runs.
550
575
  *
@@ -335,9 +335,10 @@ export interface AgentView {
335
335
  }
336
336
  /**
337
337
  * Why the host released a session's agent process. The browser turns this into
338
- * one runtime-log line per cause; `idle` stays silent (expected lifecycle).
338
+ * one runtime-log line per cause; `idle` and `shutdown` stay silent (both are
339
+ * expected lifecycle transitions, not faults).
339
340
  */
340
- export type AcpReleaseCause = 'idle' | 'workspace' | 'resume-failed' | 'stalled' | 'died';
341
+ export type AcpReleaseCause = 'idle' | 'workspace' | 'resume-failed' | 'stalled' | 'died' | 'shutdown';
341
342
  export type AcpEvent = {
342
343
  type: 'agent/status';
343
344
  agentId: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-ntr",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "description": "Interactive Agent Client Protocol (ACP) client for the DSH web UI: attach any ACP-capable agent and stream its session.",
5
5
  "repository": "https://github.com/GDWhisper/dsh-ntr.git",
6
6
  "type": "module",