@pentoshi/clai 3.8.46 → 3.8.47

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.
Files changed (96) hide show
  1. package/dist/agent/compaction-summary.js +1 -1
  2. package/dist/agent/compaction-summary.js.map +1 -1
  3. package/dist/agent/plan-tool.js +110 -14
  4. package/dist/agent/plan-tool.js.map +1 -1
  5. package/dist/agent/reliability-policy.d.ts +4 -3
  6. package/dist/agent/reliability-policy.js +4 -3
  7. package/dist/agent/reliability-policy.js.map +1 -1
  8. package/dist/agent/responder-context.d.ts +10 -0
  9. package/dist/agent/responder-context.js +50 -0
  10. package/dist/agent/responder-context.js.map +1 -0
  11. package/dist/agent/runner.js +160 -12
  12. package/dist/agent/runner.js.map +1 -1
  13. package/dist/agent/task-plan.d.ts +4 -0
  14. package/dist/agent/task-plan.js.map +1 -1
  15. package/dist/app/adapters/current-jobs-adapter.js +7 -0
  16. package/dist/app/adapters/current-jobs-adapter.js.map +1 -1
  17. package/dist/app/controllers/job-controller.d.ts +9 -6
  18. package/dist/app/controllers/job-controller.js +21 -0
  19. package/dist/app/controllers/job-controller.js.map +1 -1
  20. package/dist/app/controllers/session-controller.d.ts +14 -33
  21. package/dist/app/controllers/session-controller.js +71 -132
  22. package/dist/app/controllers/session-controller.js.map +1 -1
  23. package/dist/app/controllers/session-prompt-queue.d.ts +34 -0
  24. package/dist/app/controllers/session-prompt-queue.js +141 -0
  25. package/dist/app/controllers/session-prompt-queue.js.map +1 -0
  26. package/dist/app/controllers/session-responder.d.ts +49 -0
  27. package/dist/app/controllers/session-responder.js +311 -0
  28. package/dist/app/controllers/session-responder.js.map +1 -0
  29. package/dist/app/ports/jobs-port.d.ts +10 -7
  30. package/dist/prompts/embedded.js +1 -1
  31. package/dist/prompts/embedded.js.map +1 -1
  32. package/dist/prompts/system.agent.md +14 -9
  33. package/dist/repl.js +24 -14
  34. package/dist/repl.js.map +1 -1
  35. package/dist/safety/engagement-policy.js +39 -7
  36. package/dist/safety/engagement-policy.js.map +1 -1
  37. package/dist/store/config.js +1 -1
  38. package/dist/store/config.js.map +1 -1
  39. package/dist/store/plan.d.ts +11 -0
  40. package/dist/store/plan.js +66 -3
  41. package/dist/store/plan.js.map +1 -1
  42. package/dist/tools/definitions.js +35 -4
  43. package/dist/tools/definitions.js.map +1 -1
  44. package/dist/tools/jobs.d.ts +72 -3
  45. package/dist/tools/jobs.js +743 -121
  46. package/dist/tools/jobs.js.map +1 -1
  47. package/dist/tools/pentest-workflows.js +80 -4
  48. package/dist/tools/pentest-workflows.js.map +1 -1
  49. package/dist/tools/registry.js +60 -19
  50. package/dist/tools/registry.js.map +1 -1
  51. package/dist/tools/tool-types.d.ts +5 -0
  52. package/dist/tools/wordlists.js +74 -87
  53. package/dist/tools/wordlists.js.map +1 -1
  54. package/dist/tui-v2/actions/action-id.js +1 -1
  55. package/dist/tui-v2/actions/action-id.js.map +1 -1
  56. package/dist/tui-v2/actions/keymap.js +1 -1
  57. package/dist/tui-v2/actions/keymap.js.map +1 -1
  58. package/dist/tui-v2/app/App.js +82 -12
  59. package/dist/tui-v2/app/App.js.map +1 -1
  60. package/dist/tui-v2/app/commands/session-commands.js +0 -5
  61. package/dist/tui-v2/app/commands/session-commands.js.map +1 -1
  62. package/dist/tui-v2/bootstrap/composition-root.js +2 -0
  63. package/dist/tui-v2/bootstrap/composition-root.js.map +1 -1
  64. package/dist/tui-v2/components/jobs/jobs-panel.d.ts +12 -0
  65. package/dist/tui-v2/components/jobs/jobs-panel.js +184 -14
  66. package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -1
  67. package/dist/tui-v2/components/plan/plan-view.js +7 -3
  68. package/dist/tui-v2/components/plan/plan-view.js.map +1 -1
  69. package/dist/tui-v2/components/status/status-line.js +2 -3
  70. package/dist/tui-v2/components/status/status-line.js.map +1 -1
  71. package/dist/tui-v2/components/toast/toast-host.js +16 -1
  72. package/dist/tui-v2/components/toast/toast-host.js.map +1 -1
  73. package/dist/tui-v2/components/transcript/tool-card.d.ts +3 -0
  74. package/dist/tui-v2/components/transcript/tool-card.js +12 -2
  75. package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
  76. package/dist/tui-v2/components/transcript/transcript-row.js +1 -1
  77. package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
  78. package/dist/tui-v2/composer/composer-editor.d.ts +6 -0
  79. package/dist/tui-v2/composer/composer-editor.js +10 -17
  80. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  81. package/dist/tui-v2/composer/composer-image-paste.d.ts +1 -0
  82. package/dist/tui-v2/composer/composer-image-paste.js +22 -1
  83. package/dist/tui-v2/composer/composer-image-paste.js.map +1 -1
  84. package/dist/tui-v2/state/transcript-store.d.ts +4 -0
  85. package/dist/tui-v2/state/transcript-store.js +13 -0
  86. package/dist/tui-v2/state/transcript-store.js.map +1 -1
  87. package/dist/ui/intro-card.js +3 -3
  88. package/dist/ui/intro-card.js.map +1 -1
  89. package/dist/ui/mentions.d.ts +11 -13
  90. package/dist/ui/mentions.js +67 -26
  91. package/dist/ui/mentions.js.map +1 -1
  92. package/dist/ui/plan-pane.js +6 -2
  93. package/dist/ui/plan-pane.js.map +1 -1
  94. package/dist/version.generated.d.ts +2 -2
  95. package/dist/version.generated.js +2 -2
  96. package/package.json +1 -1
@@ -43,6 +43,10 @@ export interface VersionedPlanStep extends PlanStep {
43
43
  dependencies?: string[] | undefined;
44
44
  resourceLocks?: string[] | undefined;
45
45
  supersededBy?: string | undefined;
46
+ parentTaskId?: string | undefined;
47
+ jobId?: string | undefined;
48
+ processId?: number | undefined;
49
+ responderOwned?: boolean | undefined;
46
50
  }
47
51
  export interface VersionedTaskPlan extends Omit<TaskPlan, "steps"> {
48
52
  schemaVersion: 2;
@@ -1 +1 @@
1
- {"version":3,"file":"task-plan.js","sourceRoot":"","sources":["../../src/agent/task-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-plan.js","sourceRoot":"","sources":["../../src/agent/task-plan.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,13 @@ export function createCurrentJobsPort(manager = jobManager) {
9
9
  tail: (id, bytes) => manager.tailJob(id, bytes),
10
10
  stop: (id) => manager.stopJob(id),
11
11
  start: (command, options) => manager.startJob(command, options),
12
+ pendingNotifications: (sessionId) => manager.getPendingNotifications(sessionId),
13
+ markDelivered: (notificationId) => manager.markDelivered(notificationId),
14
+ markAnalyzed: (notificationId) => manager.markAnalyzed(notificationId),
15
+ acknowledge: (notificationId) => manager.acknowledge(notificationId),
16
+ subscribe: (listener) => manager.subscribe(listener),
17
+ linkJob: (jobId, metadata) => manager.linkJob(jobId, metadata),
18
+ cancelAll: (sessionId) => manager.cancelAll(sessionId),
12
19
  };
13
20
  }
14
21
  //# sourceMappingURL=current-jobs-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"current-jobs-adapter.js","sourceRoot":"","sources":["../../../src/app/adapters/current-jobs-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,qBAAqB,CAAC;AAGlE,+DAA+D;AAC/D,MAAM,UAAU,qBAAqB,CAAC,UAAsB,UAAU;IACpE,OAAO;QACL,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAChD,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC;QACzD,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;QACrE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC;QAC/C,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;KAChE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"current-jobs-adapter.js","sourceRoot":"","sources":["../../../src/app/adapters/current-jobs-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,qBAAqB,CAAC;AAGlE,+DAA+D;AAC/D,MAAM,UAAU,qBAAqB,CAAC,UAAsB,UAAU;IACpE,OAAO;QACL,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAChD,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC;QACzD,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;QACrE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC;QAC/C,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAC/D,oBAAoB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC;QAC/E,aAAa,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC;QACxE,YAAY,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC;QACtE,WAAW,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC;QACpE,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;QACpD,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC9D,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;KACvD,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { ToolResult } from "../../types.js";
2
- import type { BackgroundJob, JobsPort } from "../ports/jobs-port.js";
2
+ import type { BackgroundJob, JobLinkMetadata, JobManagerListener, JobsPort, ResponderNotification, StartJobOptions } from "../ports/jobs-port.js";
3
3
  import type { Disposable } from "./disposable.js";
4
4
  export declare class JobController implements Disposable {
5
5
  private readonly jobs;
@@ -9,11 +9,14 @@ export declare class JobController implements Disposable {
9
9
  get(id: string): BackgroundJob | undefined;
10
10
  tail(id: string, bytes?: number): Promise<ToolResult>;
11
11
  stop(id: string): Promise<ToolResult>;
12
- start(command: string, options?: {
13
- cwd?: string | undefined;
14
- name?: string | undefined;
15
- ownerSessionId?: string | undefined;
16
- }): Promise<ToolResult>;
12
+ start(command: string, options?: StartJobOptions): Promise<ToolResult>;
13
+ pendingNotifications(sessionId?: string): ResponderNotification[];
14
+ markDelivered(notificationId: string): boolean;
15
+ markAnalyzed(notificationId: string): boolean;
16
+ acknowledge(notificationId: string): boolean;
17
+ subscribe(listener: JobManagerListener): () => void;
18
+ linkJob(jobId: string, metadata: JobLinkMetadata): BackgroundJob | undefined;
19
+ cancelAll(sessionId: string): Promise<ToolResult>;
17
20
  hasRunning(sessionId?: string): boolean;
18
21
  dispose(): void;
19
22
  }
@@ -21,6 +21,27 @@ export class JobController {
21
21
  start(command, options) {
22
22
  return this.jobs.start(command, options);
23
23
  }
24
+ pendingNotifications(sessionId) {
25
+ return this.jobs.pendingNotifications(sessionId);
26
+ }
27
+ markDelivered(notificationId) {
28
+ return this.jobs.markDelivered(notificationId);
29
+ }
30
+ markAnalyzed(notificationId) {
31
+ return this.jobs.markAnalyzed(notificationId);
32
+ }
33
+ acknowledge(notificationId) {
34
+ return this.jobs.acknowledge(notificationId);
35
+ }
36
+ subscribe(listener) {
37
+ return this.jobs.subscribe(listener);
38
+ }
39
+ linkJob(jobId, metadata) {
40
+ return this.jobs.linkJob(jobId, metadata);
41
+ }
42
+ cancelAll(sessionId) {
43
+ return this.jobs.cancelAll(sessionId);
44
+ }
24
45
  hasRunning(sessionId) {
25
46
  return this.running(sessionId).length > 0;
26
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"job-controller.js","sourceRoot":"","sources":["../../../src/app/controllers/job-controller.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,IAAc;QAAd,SAAI,GAAJ,IAAI,CAAU;IAAG,CAAC;IAE/C,IAAI,CAAC,SAAkB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,SAAkB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,EAAU,EAAE,KAAc;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,EAAU;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CACH,OAAe,EACf,OAIC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,UAAU,CAAC,SAAkB;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO;QACL,gEAAgE;IAClE,CAAC;CACF"}
1
+ {"version":3,"file":"job-controller.js","sourceRoot":"","sources":["../../../src/app/controllers/job-controller.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,IAAc;QAAd,SAAI,GAAJ,IAAI,CAAU;IAAG,CAAC;IAE/C,IAAI,CAAC,SAAkB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,SAAkB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,EAAU,EAAE,KAAc;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,EAAU;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAyB;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,oBAAoB,CAAC,SAAkB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,aAAa,CAAC,cAAsB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAED,YAAY,CAAC,cAAsB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;IAED,WAAW,CAAC,cAAsB;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,QAA4B;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,CAAC,KAAa,EAAE,QAAyB;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS,CAAC,SAAiB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,UAAU,CAAC,SAAkB;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO;QACL,gEAAgE;IAClE,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { ChatMessage, Mode, ProviderId, TokenUsage } from "../../types.js";
1
+ import type { ChatMessage, Mode, ProviderId, TokenUsage, ToolResult } from "../../types.js";
2
2
  import { type CompactResult } from "../../agent/context-manager.js";
3
3
  import { type ContextUsageSnapshot } from "../../llm/token-usage.js";
4
4
  import { type SessionWorkspace } from "../../store/session-workspace.js";
@@ -7,11 +7,13 @@ import { type AnyAppEvent, type SessionId, type TurnId } from "../events/app-eve
7
7
  import { type Clock, type IdFactory } from "../events/sequencer.js";
8
8
  import { OutputSpool } from "../events/event-buffer.js";
9
9
  import type { AgentPort } from "../ports/agent-port.js";
10
+ import type { JobsPort } from "../ports/jobs-port.js";
10
11
  import type { PersistencePort } from "../ports/persistence-port.js";
11
12
  import type { ConfirmationPort } from "../ports/confirm-port.js";
12
13
  import type { SecretPort } from "../ports/secret-port.js";
13
14
  import { type TurnResult } from "./turn-controller.js";
14
15
  import { type Disposable } from "./disposable.js";
16
+ import { type TurnDisplayOptions } from "./session-prompt-queue.js";
15
17
  export interface SessionState {
16
18
  readonly sessionId: SessionId;
17
19
  readonly mode: Mode;
@@ -36,6 +38,7 @@ export type NoticeLevel = "info" | "warn";
36
38
  export interface SessionControllerDeps {
37
39
  readonly agent: AgentPort;
38
40
  readonly persistence: PersistencePort;
41
+ readonly jobs?: JobsPort | undefined;
39
42
  readonly emit: (event: AnyAppEvent) => void;
40
43
  readonly sessionId?: string | undefined;
41
44
  readonly provider?: ProviderId | undefined;
@@ -49,6 +52,11 @@ export interface SessionControllerDeps {
49
52
  readonly getTranscriptSnapshot?: (() => ClassicTranscriptItem[] | undefined) | undefined;
50
53
  /** When true, never persist sessions or generate AI titles (CLI --no-history). */
51
54
  readonly noHistory?: boolean | undefined;
55
+ /**
56
+ * UI hook fired when the Responder hands a completed job's result to the
57
+ * model. Wired to a green success toast; only called on a committed send.
58
+ */
59
+ readonly notifyResponderDelivery?: ((summary: string) => void) | undefined;
52
60
  }
53
61
  export type TurnEndListener = (result: TurnResult) => void;
54
62
  export type SessionStateListener = () => void;
@@ -63,20 +71,8 @@ export declare class SessionController implements Disposable {
63
71
  private readonly turnEndListeners;
64
72
  private readonly stateListeners;
65
73
  private history;
66
- private readonly queue;
67
- /**
68
- * Prompt promoted by "Send now" while a turn was running. After the abort
69
- * settles, {@link continueQueue} runs this before any remaining queue items.
70
- */
71
- private priorityPrompt;
72
- /**
73
- * Display override for the next turn only (`null` = hide YOU bubble).
74
- * Used when implement/revision directives are queued while a turn is running.
75
- */
76
- private nextTurnDisplayPrompt;
77
- private nextTurnDisplayArmed;
78
- /** Re-entrancy guard for {@link continueQueue}. */
79
- private continuingQueue;
74
+ private readonly prompts;
75
+ private readonly responder;
80
76
  private provider;
81
77
  private model;
82
78
  private mode;
@@ -171,37 +167,22 @@ export declare class SessionController implements Disposable {
171
167
  messages: number;
172
168
  tokens: number;
173
169
  };
174
- /**
175
- * Queue a prompt while a turn is running. Optional displayPrompt is applied
176
- * to the next dequeued turn (null hides the YOU bubble).
177
- */
178
- enqueue(prompt: string, opts?: {
179
- displayPrompt?: string | null | undefined;
180
- }): void;
170
+ cancelAll(): Promise<ToolResult>;
171
+ enqueue(prompt: string, opts?: TurnDisplayOptions): void;
181
172
  queued(): readonly string[];
182
173
  removeQueued(index: number): void;
183
174
  takeQueued(index: number): string | undefined;
184
- /** Edit a queued draft in place before it runs (INPUT-007). */
185
175
  editQueued(index: number, text: string): void;
186
- /** Move a queued draft to a new position before it runs (INPUT-007). */
187
176
  reorderQueued(fromIndex: number, toIndex: number): void;
188
177
  sendQueuedNow(index: number): void;
189
178
  abort(): void;
190
179
  continueQueue(): Promise<void>;
191
- private consumeNextTurnDisplay;
192
180
  /** In-memory plan-approval flag consumed by the agent gate (CORE-005). */
193
181
  setPlanApproved(value: boolean): void;
194
182
  isPlanApproved(): boolean;
195
183
  /** Fires after every turn settles (completed/aborted/error), including drain. */
196
184
  onTurnEnd(listener: TurnEndListener): () => void;
197
- submit(prompt: string, opts?: {
198
- displayPrompt?: string | null | undefined;
199
- }): Promise<TurnResult>;
200
- /**
201
- * Runs queued prompts one at a time while idle; stops on first
202
- * non-completion. Prefer {@link continueQueue} from the UI so priority
203
- * ("send now") prompts are honored too.
204
- */
185
+ submit(prompt: string, opts?: TurnDisplayOptions): Promise<TurnResult>;
205
186
  drain(): Promise<TurnResult[]>;
206
187
  private runTurn;
207
188
  /**
@@ -6,7 +6,7 @@ import { resolveTurnInput } from "../../attachments/service.js";
6
6
  import { generateSessionTitle } from "../../agent/session-title.js";
7
7
  import { clearTextOnlyModels } from "../../llm/tool-protocol.js";
8
8
  import { getConfig, getProviderModel } from "../../store/config.js";
9
- import { beginSessionWorkspace, getActiveSessionWorkspace, } from "../../store/session-workspace.js";
9
+ import { beginSessionWorkspace, getActiveSessionWorkspace } from "../../store/session-workspace.js";
10
10
  import { summarizeForSessionCompact } from "./session-compact-helper.js";
11
11
  import { asSessionId, } from "../events/app-event.js";
12
12
  import { EventSequencer, } from "../events/sequencer.js";
@@ -14,6 +14,8 @@ import { OutputSpool } from "../events/event-buffer.js";
14
14
  import { TurnController } from "./turn-controller.js";
15
15
  import { CompositeDisposable } from "./disposable.js";
16
16
  import { persistedContextUsage, SessionPersistenceQueue, } from "./session-persistence.js";
17
+ import { SessionPromptQueue, } from "./session-prompt-queue.js";
18
+ import { SessionResponder } from "./session-responder.js";
17
19
  function mintSessionId() {
18
20
  return `sess-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
19
21
  }
@@ -28,20 +30,8 @@ export class SessionController {
28
30
  turnEndListeners = new Set();
29
31
  stateListeners = new Set();
30
32
  history = [];
31
- queue = [];
32
- /**
33
- * Prompt promoted by "Send now" while a turn was running. After the abort
34
- * settles, {@link continueQueue} runs this before any remaining queue items.
35
- */
36
- priorityPrompt;
37
- /**
38
- * Display override for the next turn only (`null` = hide YOU bubble).
39
- * Used when implement/revision directives are queued while a turn is running.
40
- */
41
- nextTurnDisplayPrompt = undefined;
42
- nextTurnDisplayArmed = false;
43
- /** Re-entrancy guard for {@link continueQueue}. */
44
- continuingQueue = false;
33
+ prompts;
34
+ responder;
45
35
  provider;
46
36
  model;
47
37
  mode;
@@ -77,6 +67,38 @@ export class SessionController {
77
67
  emit: deps.emit,
78
68
  mintTurnId: deps.mintTurnId,
79
69
  }));
70
+ this.prompts = new SessionPromptQueue({
71
+ isRunning: () => this.turn.running,
72
+ abort: () => this.turn.abort(),
73
+ notifyState: () => this.notifyState(),
74
+ notice: (text) => this.notice("info", text),
75
+ runTurn: (prompt, options) => this.runTurn(prompt, options),
76
+ });
77
+ if (deps.jobs) {
78
+ this.responder = new SessionResponder({
79
+ jobs: deps.jobs,
80
+ persistence: deps.persistence,
81
+ sequencer: this.sequencer,
82
+ emit: deps.emit,
83
+ sessionId: () => this.sessionIdValue,
84
+ isBusy: () => this.turn.running || this.compactingFlag,
85
+ hasQueuedWork: () => this.prompts.hasPending(),
86
+ continueQueue: () => this.prompts.continue(),
87
+ runTurn: (prompt) => this.runTurn(prompt, { displayPrompt: null }),
88
+ notifyState: () => this.notifyState(),
89
+ ...(deps.notifyResponderDelivery
90
+ ? { notifyDelivery: deps.notifyResponderDelivery }
91
+ : {}),
92
+ });
93
+ const unsubscribe = deps.jobs.subscribe((change) => {
94
+ this.responder?.handleChange(change);
95
+ });
96
+ this.disposables.add({ dispose: unsubscribe });
97
+ this.responder.scheduleWake();
98
+ }
99
+ else {
100
+ this.responder = undefined;
101
+ }
80
102
  }
81
103
  /** Current per-session scratch/output workspace (always bound while live). */
82
104
  get workspace() {
@@ -95,7 +117,7 @@ export class SessionController {
95
117
  running: this.turn.running,
96
118
  compacting: this.compactingFlag,
97
119
  historyLength: this.history.length,
98
- queued: [...this.queue],
120
+ queued: this.prompts.snapshot(),
99
121
  title: this.sessionTitle,
100
122
  contextUsage,
101
123
  contextChip: contextUsage
@@ -178,13 +200,13 @@ export class SessionController {
178
200
  loadHistory(messages, options = {}) {
179
201
  if (this.turn.running)
180
202
  this.turn.abort();
203
+ this.responder?.invalidateWake();
181
204
  // Deep-copy then heal broken assistant/tool pairs from aborted turns so
182
205
  // /history resume + "continue" never dies on invalid native tool protocol.
183
206
  const healed = messages.map((m) => ({ ...m }));
184
207
  repairToolProtocol(healed);
185
208
  this.history = healed;
186
- this.queue.length = 0;
187
- this.priorityPrompt = undefined;
209
+ this.prompts.clear();
188
210
  this.spool.clear();
189
211
  // Keep the resumed session's existing title; only refresh after the user
190
212
  // adds more turns (same cadence as classic TUI).
@@ -224,6 +246,7 @@ export class SessionController {
224
246
  code: options.workspaceCode,
225
247
  });
226
248
  this.notifyState();
249
+ this.responder?.scheduleWake();
227
250
  }
228
251
  notice(level, text) {
229
252
  this.deps.emit(this.sequencer.build("notice", { level, text }, undefined));
@@ -245,9 +268,9 @@ export class SessionController {
245
268
  reset(options = {}) {
246
269
  if (this.turn.running)
247
270
  this.turn.abort();
271
+ this.responder?.invalidateWake();
248
272
  this.history = [];
249
- this.queue.length = 0;
250
- this.priorityPrompt = undefined;
273
+ this.prompts.clear();
251
274
  this.sessionTitle = undefined;
252
275
  this.titledAtUserCount = 0;
253
276
  this.titleInFlight = false;
@@ -262,6 +285,7 @@ export class SessionController {
262
285
  }
263
286
  this.policy = createSessionPolicy(this.sessionIdValue);
264
287
  this.notifyState();
288
+ this.responder?.scheduleWake();
265
289
  }
266
290
  /** Roll back history after a rejected plan-implement compaction. */
267
291
  restoreMessages(messages, contextUsage) {
@@ -316,6 +340,11 @@ export class SessionController {
316
340
  finally {
317
341
  this.compactingFlag = false;
318
342
  this.notifyState();
343
+ // Becoming idle after compaction is an idle transition just like a turn
344
+ // ending: a responder completion that arrived while compactingFlag was
345
+ // set had its wake suppressed by isBusy(). Re-arm it here or the agent
346
+ // stays stranded (job exited, no wake, no delivery) until the next turn.
347
+ this.responder?.scheduleWake();
319
348
  }
320
349
  }
321
350
  /** Persist one immutable snapshot behind every previously captured save. */
@@ -385,108 +414,42 @@ export class SessionController {
385
414
  tokens: snap?.contextTokens ?? estimateMessagesTokens(this.history),
386
415
  };
387
416
  }
388
- /**
389
- * Queue a prompt while a turn is running. Optional displayPrompt is applied
390
- * to the next dequeued turn (null hides the YOU bubble).
391
- */
392
- enqueue(prompt, opts) {
393
- if (opts && "displayPrompt" in opts) {
394
- this.nextTurnDisplayPrompt = opts.displayPrompt;
395
- this.nextTurnDisplayArmed = true;
396
- }
397
- const text = prompt.trim();
398
- if (!text)
399
- return;
400
- this.queue.push(text);
417
+ async cancelAll() {
418
+ this.responder?.invalidateWake();
419
+ this.turn.abort();
420
+ this.prompts.clear(true);
401
421
  this.notifyState();
422
+ if (!this.deps.jobs) {
423
+ return { ok: true, output: "Turn cancelled; no background-job service is configured." };
424
+ }
425
+ return this.deps.jobs.cancelAll(this.sessionIdValue);
426
+ }
427
+ enqueue(prompt, opts) {
428
+ this.prompts.enqueue(prompt, opts);
402
429
  }
403
430
  queued() {
404
- return [...this.queue];
431
+ return this.prompts.snapshot();
405
432
  }
406
433
  removeQueued(index) {
407
- if (index >= 0 && index < this.queue.length) {
408
- this.queue.splice(index, 1);
409
- this.notifyState();
410
- }
434
+ this.prompts.remove(index);
411
435
  }
412
436
  takeQueued(index) {
413
- if (index < 0 || index >= this.queue.length)
414
- return undefined;
415
- const [text] = this.queue.splice(index, 1);
416
- this.notifyState();
417
- return text;
437
+ return this.prompts.take(index);
418
438
  }
419
- /** Edit a queued draft in place before it runs (INPUT-007). */
420
439
  editQueued(index, text) {
421
- if (index >= 0 && index < this.queue.length) {
422
- this.queue[index] = text;
423
- this.notifyState();
424
- }
440
+ this.prompts.edit(index, text);
425
441
  }
426
- /** Move a queued draft to a new position before it runs (INPUT-007). */
427
442
  reorderQueued(fromIndex, toIndex) {
428
- if (fromIndex < 0 ||
429
- fromIndex >= this.queue.length ||
430
- toIndex < 0 ||
431
- toIndex >= this.queue.length ||
432
- fromIndex === toIndex) {
433
- return;
434
- }
435
- const [moved] = this.queue.splice(fromIndex, 1);
436
- if (moved !== undefined)
437
- this.queue.splice(toIndex, 0, moved);
438
- this.notifyState();
443
+ this.prompts.reorder(fromIndex, toIndex);
439
444
  }
440
445
  sendQueuedNow(index) {
441
- const text = this.takeQueued(index);
442
- if (text === undefined)
443
- return;
444
- if (this.turn.running) {
445
- this.priorityPrompt = text;
446
- this.turn.abort();
447
- this.notice("info", "interrupting · sending queued prompt now");
448
- return;
449
- }
450
- void this.submit(text).then(() => this.continueQueue());
446
+ this.prompts.sendNow(index);
451
447
  }
452
448
  abort() {
453
449
  this.turn.abort();
454
450
  }
455
451
  async continueQueue() {
456
- if (this.continuingQueue || this.turn.running)
457
- return;
458
- this.continuingQueue = true;
459
- try {
460
- while (!this.turn.running) {
461
- let next;
462
- if (this.priorityPrompt !== undefined) {
463
- next = this.priorityPrompt;
464
- this.priorityPrompt = undefined;
465
- }
466
- else if (this.queue.length > 0) {
467
- next = this.queue.shift();
468
- this.notifyState();
469
- }
470
- else {
471
- break;
472
- }
473
- if (next === undefined || !next.trim())
474
- continue;
475
- const displayOpts = this.consumeNextTurnDisplay();
476
- await this.runTurn(next, displayOpts);
477
- }
478
- }
479
- finally {
480
- this.continuingQueue = false;
481
- }
482
- }
483
- consumeNextTurnDisplay() {
484
- if (!this.nextTurnDisplayArmed)
485
- return undefined;
486
- this.nextTurnDisplayArmed = false;
487
- const displayPrompt = this.nextTurnDisplayPrompt;
488
- this.nextTurnDisplayPrompt = undefined;
489
- return { displayPrompt };
452
+ await this.prompts.continue();
490
453
  }
491
454
  /** In-memory plan-approval flag consumed by the agent gate (CORE-005). */
492
455
  setPlanApproved(value) {
@@ -501,36 +464,10 @@ export class SessionController {
501
464
  return () => this.turnEndListeners.delete(listener);
502
465
  }
503
466
  async submit(prompt, opts) {
504
- if (this.turn.running) {
505
- throw new Error("a turn is already running; enqueue() while busy");
506
- }
507
- // Explicit submit opts win over any armed queue display override.
508
- if (opts && "displayPrompt" in opts) {
509
- this.nextTurnDisplayArmed = false;
510
- this.nextTurnDisplayPrompt = undefined;
511
- return this.runTurn(prompt, opts);
512
- }
513
- const displayOpts = this.consumeNextTurnDisplay();
514
- return this.runTurn(prompt, displayOpts ?? opts);
467
+ return this.prompts.submit(prompt, opts);
515
468
  }
516
- /**
517
- * Runs queued prompts one at a time while idle; stops on first
518
- * non-completion. Prefer {@link continueQueue} from the UI so priority
519
- * ("send now") prompts are honored too.
520
- */
521
469
  async drain() {
522
- const results = [];
523
- while (this.queue.length > 0 && !this.turn.running) {
524
- const next = this.queue.shift();
525
- if (next === undefined)
526
- break;
527
- this.notifyState();
528
- const result = await this.runTurn(next);
529
- results.push(result);
530
- if (result.status !== "completed")
531
- break;
532
- }
533
- return results;
470
+ return this.prompts.drain();
534
471
  }
535
472
  async runTurn(prompt, opts) {
536
473
  const config = getConfig();
@@ -585,6 +522,7 @@ export class SessionController {
585
522
  }
586
523
  for (const listener of this.turnEndListeners)
587
524
  listener(result);
525
+ this.responder?.scheduleWake();
588
526
  return result;
589
527
  }
590
528
  /**
@@ -610,6 +548,7 @@ export class SessionController {
610
548
  });
611
549
  }
612
550
  dispose() {
551
+ this.responder?.invalidateWake();
613
552
  this.turnEndListeners.clear();
614
553
  this.stateListeners.clear();
615
554
  this.disposables.dispose();