koneck 2.28.0 → 2.30.0-next.1

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 (89) hide show
  1. package/README.md +32 -0
  2. package/dist/checkpoint.d.ts +20 -0
  3. package/dist/checkpoint.d.ts.map +1 -1
  4. package/dist/checkpoint.js +169 -10
  5. package/dist/checkpoint.js.map +1 -1
  6. package/dist/completion-notices.d.ts +8 -0
  7. package/dist/completion-notices.d.ts.map +1 -0
  8. package/dist/completion-notices.js +14 -0
  9. package/dist/completion-notices.js.map +1 -0
  10. package/dist/config-store.d.ts +2 -0
  11. package/dist/config-store.d.ts.map +1 -1
  12. package/dist/config-store.js +6 -2
  13. package/dist/config-store.js.map +1 -1
  14. package/dist/config.d.ts +9 -0
  15. package/dist/config.d.ts.map +1 -1
  16. package/dist/config.js +28 -1
  17. package/dist/config.js.map +1 -1
  18. package/dist/engine.d.ts +9 -12
  19. package/dist/engine.d.ts.map +1 -1
  20. package/dist/engine.js +48 -26
  21. package/dist/engine.js.map +1 -1
  22. package/dist/git-diff.d.ts +16 -0
  23. package/dist/git-diff.d.ts.map +1 -0
  24. package/dist/git-diff.js +56 -0
  25. package/dist/git-diff.js.map +1 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +36 -28
  28. package/dist/index.js.map +1 -1
  29. package/dist/ink-chat.d.ts +73 -1
  30. package/dist/ink-chat.d.ts.map +1 -1
  31. package/dist/ink-chat.js +898 -67
  32. package/dist/ink-chat.js.map +1 -1
  33. package/dist/permissions.d.ts.map +1 -1
  34. package/dist/permissions.js +67 -9
  35. package/dist/permissions.js.map +1 -1
  36. package/dist/preflight.d.ts +24 -0
  37. package/dist/preflight.d.ts.map +1 -0
  38. package/dist/preflight.js +87 -0
  39. package/dist/preflight.js.map +1 -0
  40. package/dist/refactor.d.ts +7 -3
  41. package/dist/refactor.d.ts.map +1 -1
  42. package/dist/refactor.js +122 -35
  43. package/dist/refactor.js.map +1 -1
  44. package/dist/run-limits.d.ts +9 -0
  45. package/dist/run-limits.d.ts.map +1 -0
  46. package/dist/run-limits.js +13 -0
  47. package/dist/run-limits.js.map +1 -0
  48. package/dist/session-bus.d.ts +14 -0
  49. package/dist/session-bus.d.ts.map +1 -1
  50. package/dist/session-bus.js +24 -3
  51. package/dist/session-bus.js.map +1 -1
  52. package/dist/session.d.ts +20 -0
  53. package/dist/session.d.ts.map +1 -1
  54. package/dist/session.js +27 -7
  55. package/dist/session.js.map +1 -1
  56. package/dist/types.d.ts +7 -1
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/web/api.d.ts.map +1 -1
  59. package/dist/web/api.js +37 -21
  60. package/dist/web/api.js.map +1 -1
  61. package/dist/web/events.d.ts +15 -0
  62. package/dist/web/events.d.ts.map +1 -1
  63. package/dist/web/events.js.map +1 -1
  64. package/dist/web/search.d.ts +12 -0
  65. package/dist/web/search.d.ts.map +1 -1
  66. package/dist/web/search.js +38 -0
  67. package/dist/web/search.js.map +1 -1
  68. package/dist/web/sessions.d.ts +61 -2
  69. package/dist/web/sessions.d.ts.map +1 -1
  70. package/dist/web/sessions.js +94 -4
  71. package/dist/web/sessions.js.map +1 -1
  72. package/dist/web/ui-client.d.ts.map +1 -1
  73. package/dist/web/ui-client.js +0 -0
  74. package/dist/web/ui-client.js.map +1 -1
  75. package/dist/web/ui-css.d.ts.map +1 -1
  76. package/dist/web/ui-css.js +22 -0
  77. package/dist/web/ui-css.js.map +1 -1
  78. package/dist/web/ui.d.ts.map +1 -1
  79. package/dist/web/ui.js +13 -1
  80. package/dist/web/ui.js.map +1 -1
  81. package/dist/workspace-trust.d.ts +2 -0
  82. package/dist/workspace-trust.d.ts.map +1 -1
  83. package/dist/workspace-trust.js +12 -0
  84. package/dist/workspace-trust.js.map +1 -1
  85. package/dist/worktree.d.ts +2 -0
  86. package/dist/worktree.d.ts.map +1 -1
  87. package/dist/worktree.js +68 -4
  88. package/dist/worktree.js.map +1 -1
  89. package/package.json +1 -1
@@ -117,6 +117,21 @@ export type WebEvent =
117
117
  level: 'info' | 'warn';
118
118
  text: string;
119
119
  }
120
+ /**
121
+ * A turn changed files on disk.
122
+ *
123
+ * Emitted so a badge can appear without the client polling for it, and so the Changes view knows
124
+ * a new turn's worth of diff exists.
125
+ */
126
+ | {
127
+ t: 'changed';
128
+ at: number;
129
+ seq: number;
130
+ turn: number;
131
+ files: number;
132
+ added: number;
133
+ removed: number;
134
+ }
120
135
  /** The turn ended. */
121
136
  | {
122
137
  t: 'turn-end';
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/web/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/web/events.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/web/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAkCH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAalC,MAAM,OAAO,QAAQ;IACF,GAAG,GAAe,EAAE,CAAC;IACrB,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IACpD,GAAG,GAAG,CAAC,CAAC;IAEhB,oEAAoE;IACpE,IAAI,CAAC,KAAc;QACjB,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAc,CAAC;QACnF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,YAAY;YAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACrD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,4EAA4E;YAC5E,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,sCAAsC,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,KAAK,GAAG,CAAC;QACb,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED,SAAS,CAAC,EAAyB;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,IAAI,OAAO,KAAa,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3C"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/web/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAyCH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAalC,MAAM,OAAO,QAAQ;IACF,GAAG,GAAe,EAAE,CAAC;IACrB,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IACpD,GAAG,GAAG,CAAC,CAAC;IAEhB,oEAAoE;IACpE,IAAI,CAAC,KAAc;QACjB,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAc,CAAC;QACnF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,YAAY;YAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACrD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,4EAA4E;YAC5E,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,sCAAsC,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,KAAK,GAAG,CAAC;QACb,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED,SAAS,CAAC,EAAyB;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,IAAI,OAAO,KAAa,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3C"}
@@ -12,6 +12,9 @@
12
12
  * worse than one that admits it.
13
13
  */
14
14
  export interface SearchHit {
15
+ /** The workspace it was found in, so a hit from elsewhere can be opened. */
16
+ workspace: string;
17
+ workspaceName: string;
15
18
  /** The transcript this came from. */
16
19
  file: string;
17
20
  task: string;
@@ -42,4 +45,13 @@ export declare const MAX_HITS_PER_FILE = 8;
42
45
  * hangs on a bad one, and nobody typing into a sidebar means `(a+)+b`.
43
46
  */
44
47
  export declare function searchSessions(cwd: string, query: string): Promise<SearchResult>;
48
+ /**
49
+ * The same search, over more than one workspace.
50
+ *
51
+ * Scoping search to the directory KONECK happens to be pointed at was the wrong default: the
52
+ * question is "when did I deal with this before", and before was often somewhere else. Each
53
+ * workspace keeps its own budget so one enormous history cannot starve the rest, and every hit
54
+ * says which workspace it came from because opening it means going there.
55
+ */
56
+ export declare function searchAllWorkspaces(workspaces: readonly string[], query: string): Promise<SearchResult>;
45
57
  //# sourceMappingURL=search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/web/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,MAAM,WAAW,SAAS;IACxB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,qFAAqF;IACrF,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,QAAQ,MAAM,CAAC;AAC5B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AA6CnC;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA+DtF"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/web/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,MAAM,WAAW,SAAS;IACxB,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,qFAAqF;IACrF,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,QAAQ,MAAM,CAAC;AAC5B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AA6CnC;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAgEtF;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC,CA0BvB"}
@@ -127,6 +127,7 @@ export async function searchSessions(cwd, query) {
127
127
  continue;
128
128
  const { snippet, offset } = snippetAround(part.text, found, needle.length);
129
129
  hits.push({
130
+ workspace: cwd, workspaceName: path.basename(cwd) || cwd,
130
131
  file, task, at, role: part.role,
131
132
  ...(part.tool ? { tool: part.tool } : {}),
132
133
  snippet: redactSecrets(snippet), offset,
@@ -144,4 +145,41 @@ export async function searchSessions(cwd, query) {
144
145
  }
145
146
  return { hits, filesSearched, capped: capped || hits.length >= MAX_HITS, ms: Date.now() - started };
146
147
  }
148
+ /**
149
+ * The same search, over more than one workspace.
150
+ *
151
+ * Scoping search to the directory KONECK happens to be pointed at was the wrong default: the
152
+ * question is "when did I deal with this before", and before was often somewhere else. Each
153
+ * workspace keeps its own budget so one enormous history cannot starve the rest, and every hit
154
+ * says which workspace it came from because opening it means going there.
155
+ */
156
+ export async function searchAllWorkspaces(workspaces, query) {
157
+ const started = Date.now();
158
+ const seen = new Set();
159
+ const hits = [];
160
+ let filesSearched = 0;
161
+ let capped = false;
162
+ for (const workspace of workspaces) {
163
+ const dir = path.resolve(workspace);
164
+ if (seen.has(dir))
165
+ continue; // the launch directory is usually also in the trust store
166
+ seen.add(dir);
167
+ if (hits.length >= MAX_HITS) {
168
+ capped = true;
169
+ break;
170
+ }
171
+ const result = await searchSessions(dir, query);
172
+ hits.push(...result.hits);
173
+ filesSearched += result.filesSearched;
174
+ capped = capped || result.capped;
175
+ }
176
+ // Newest first across all of them, which is the order that makes a mixed list readable.
177
+ hits.sort((a, b) => b.at - a.at);
178
+ return {
179
+ hits: hits.slice(0, MAX_HITS),
180
+ filesSearched,
181
+ capped: capped || hits.length > MAX_HITS,
182
+ ms: Date.now() - started,
183
+ };
184
+ }
147
185
  //# sourceMappingURL=search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/web/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/web/search.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,12 @@
10
10
  */
11
11
  import type { AgentConfig } from '../types.js';
12
12
  import { EventBus } from './events.js';
13
+ import { summarise as summariseChanges, type FileChange } from './changes.js';
13
14
  import type { TrajectoryEvent } from '../trajectory.js';
15
+ import { type ModeName } from '../permissions.js';
14
16
  export interface WebSessionInfo {
17
+ /** Which permission mode this session is running in. */
18
+ mode: ModeName;
15
19
  id: string;
16
20
  cwd: string;
17
21
  title: string;
@@ -23,6 +27,18 @@ export interface WebSessionInfo {
23
27
  busy: boolean;
24
28
  watchers: number;
25
29
  }
30
+ /** What one turn changed on disk. */
31
+ export interface TurnChanges {
32
+ turn: number;
33
+ at: number;
34
+ ms: number;
35
+ changes: FileChange[];
36
+ totals: {
37
+ files: number;
38
+ added: number;
39
+ removed: number;
40
+ };
41
+ }
26
42
  export declare class WebSession {
27
43
  readonly id: string;
28
44
  private config;
@@ -46,10 +62,39 @@ export declare class WebSession {
46
62
  private toolCounter;
47
63
  /** Start times by tool call, so a duration can be reported without the engine providing one. */
48
64
  private readonly toolStarted;
65
+ /**
66
+ * How the workspace looked when this session began, and when the last turn ended.
67
+ *
68
+ * Two snapshots rather than one. The whole-session view needs the first — a sum of per-turn
69
+ * diffs is not the same thing, because a file written in turn two and reverted in turn five is
70
+ * two changes and no net change. The per-turn view needs the second.
71
+ */
72
+ private baseline;
73
+ private previous;
74
+ /** What each turn changed, in order. */
75
+ readonly turnChanges: TurnChanges[];
76
+ /**
77
+ * The permission mode, and what the user has already agreed to.
78
+ *
79
+ * The engine asks the interface about every tool call and does not decide itself, so an interface
80
+ * that asks about all of them asks about reading a directory — which is what this did, and it made
81
+ * every turn stop dead waiting for a click on something nobody needs to approve. The CLI has had
82
+ * the answer all along in permissions.ts: a mode, a risk per tool, and rules the user has already
83
+ * accepted. Same machinery here, same default.
84
+ */
85
+ mode: ModeName;
86
+ private readonly rules;
49
87
  constructor(id: string, config: AgentConfig);
50
88
  info(): WebSessionInfo;
51
- /** Answers a permission request. Returns false if nothing was waiting on that id. */
52
- answer(askId: string, allowed: boolean): boolean;
89
+ /**
90
+ * Answers a permission request.
91
+ *
92
+ * `always` records a rule, so agreeing to a tool once does not mean agreeing to it forty times —
93
+ * which is the difference between a permission prompt and an obstacle.
94
+ */
95
+ answer(askId: string, allowed: boolean, always?: boolean): boolean;
96
+ /** Changes the permission mode from the browser. */
97
+ setMode(mode: ModeName): void;
53
98
  /** Every request still waiting, so a reconnecting client can show them again. */
54
99
  outstandingAsks(): string[];
55
100
  /**
@@ -60,8 +105,22 @@ export declare class WebSession {
60
105
  */
61
106
  trajectory(): readonly TrajectoryEvent[];
62
107
  private ensureAgent;
108
+ /**
109
+ * Takes the opening snapshot.
110
+ *
111
+ * Called once, off the critical path, when the session is created: the walk is bounded but a
112
+ * large workspace still takes a moment, and nothing should wait on a diff view to start working.
113
+ */
114
+ captureBaseline(): Promise<void>;
115
+ /** Everything this session has changed, against how the workspace looked when it began. */
116
+ changesSinceStart(): Promise<{
117
+ changes: FileChange[];
118
+ totals: ReturnType<typeof summariseChanges>;
119
+ } | null>;
63
120
  /** Runs one message. Rejects if a turn is already in flight. */
64
121
  send(text: string): Promise<void>;
122
+ /** Snapshots the workspace and records the difference from the previous turn. */
123
+ private recordTurnChanges;
65
124
  /** Stops a run in progress, if the engine supports it. */
66
125
  abort(): void;
67
126
  /** Changes the model or endpoint, which means a new agent on the next message. */
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/web/sessions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAQD,qBAAa,UAAU;IAuBT,QAAQ,CAAC,EAAE,EAAE,MAAM;IAAE,OAAO,CAAC,MAAM;IAtB/C,QAAQ,CAAC,GAAG,WAAkB;IAC9B,QAAQ,CAAC,SAAS,SAAc;IAChC;;;;;;OAMG;IACH,KAAK,SAAK;IACV,KAAK,SAAiB;IACtB,KAAK,SAAK;IACV,WAAW,SAAK;IAChB,IAAI,UAAS;IAEb,OAAO,CAAC,KAAK,CAA+D;IAC5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAK;IACxB,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAEpC,EAAE,EAAE,MAAM,EAAU,MAAM,EAAE,WAAW;IAE5D,IAAI,IAAI,cAAc;IAStB,qFAAqF;IACrF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IAShD,iFAAiF;IACjF,eAAe,IAAI,MAAM,EAAE;IAE3B;;;;;OAKG;IACH,UAAU,IAAI,SAAS,eAAe,EAAE;YAI1B,WAAW;IAqEzB,gEAAgE;IAC1D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BvC,0DAA0D;IAC1D,KAAK,IAAI,IAAI;IAIb,kFAAkF;IAClF,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;CAM/C;AAED,iCAAiC;AACjC,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiC;IAC1D,OAAO,CAAC,OAAO,CAAK;IAEpB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU;IAUvC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IACvC,IAAI,IAAI,cAAc,EAAE;IAKxB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAC3B,IAAI,IAAI,IAAI,MAAM,CAA+B;CAClD;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD"}
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/web/sessions.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ import path from 'path';
12
12
  import { createAgentSession } from '../engine.js';
13
13
  import { estimateCost } from '../pricing.js';
14
14
  import { EventBus } from './events.js';
15
+ import { snapshot, compare, summarise as summariseChanges } from './changes.js';
16
+ import { decide, modeSpec } from '../permissions.js';
15
17
  import { redactSecrets } from '../redact.js';
16
18
  export class WebSession {
17
19
  id;
@@ -36,28 +38,64 @@ export class WebSession {
36
38
  toolCounter = 0;
37
39
  /** Start times by tool call, so a duration can be reported without the engine providing one. */
38
40
  toolStarted = new Map();
41
+ /**
42
+ * How the workspace looked when this session began, and when the last turn ended.
43
+ *
44
+ * Two snapshots rather than one. The whole-session view needs the first — a sum of per-turn
45
+ * diffs is not the same thing, because a file written in turn two and reverted in turn five is
46
+ * two changes and no net change. The per-turn view needs the second.
47
+ */
48
+ baseline = null;
49
+ previous = null;
50
+ /** What each turn changed, in order. */
51
+ turnChanges = [];
52
+ /**
53
+ * The permission mode, and what the user has already agreed to.
54
+ *
55
+ * The engine asks the interface about every tool call and does not decide itself, so an interface
56
+ * that asks about all of them asks about reading a directory — which is what this did, and it made
57
+ * every turn stop dead waiting for a click on something nobody needs to approve. The CLI has had
58
+ * the answer all along in permissions.ts: a mode, a risk per tool, and rules the user has already
59
+ * accepted. Same machinery here, same default.
60
+ */
61
+ mode = 'auto';
62
+ rules = [];
39
63
  constructor(id, config) {
40
64
  this.id = id;
41
65
  this.config = config;
42
66
  }
43
67
  info() {
44
68
  return {
69
+ mode: this.mode,
45
70
  id: this.id, cwd: this.config.cwd, title: this.title,
46
71
  provider: this.config.provider, model: this.config.model,
47
72
  createdAt: this.createdAt, turns: this.turns, totalTokens: this.totalTokens,
48
73
  busy: this.busy, watchers: this.bus.watchers,
49
74
  };
50
75
  }
51
- /** Answers a permission request. Returns false if nothing was waiting on that id. */
52
- answer(askId, allowed) {
76
+ /**
77
+ * Answers a permission request.
78
+ *
79
+ * `always` records a rule, so agreeing to a tool once does not mean agreeing to it forty times —
80
+ * which is the difference between a permission prompt and an obstacle.
81
+ */
82
+ answer(askId, allowed, always = false) {
53
83
  const waiting = this.pending.get(askId);
54
84
  if (!waiting)
55
85
  return false;
56
86
  this.pending.delete(askId);
87
+ if (allowed && always && waiting.tool)
88
+ this.rules.push({ tool: waiting.tool });
57
89
  waiting.resolve(allowed);
58
90
  this.bus.emit({ t: 'ask-done', askId, allowed });
59
91
  return true;
60
92
  }
93
+ /** Changes the permission mode from the browser. */
94
+ setMode(mode) {
95
+ this.mode = mode;
96
+ this.bus.emit({ t: 'notice', level: 'info',
97
+ text: `Mode: ${modeSpec(mode).label} — ${modeSpec(mode).blurb}` });
98
+ }
61
99
  /** Every request still waiting, so a reconnecting client can show them again. */
62
100
  outstandingAsks() { return [...this.pending.keys()]; }
63
101
  /**
@@ -80,9 +118,17 @@ export class WebSession {
80
118
  // block for ever or auto-allow, and auto-allowing a write because the UI is a web page
81
119
  // rather than a terminal is not a decision anyone made.
82
120
  approve: async (tool, args) => {
121
+ const verdict = decide(this.mode, tool, args, this.rules);
122
+ if (verdict === 'allow')
123
+ return true;
124
+ if (verdict === 'deny') {
125
+ bus.emit({ t: 'notice', level: 'warn',
126
+ text: `${tool} is not allowed in ${modeSpec(this.mode).label} mode.` });
127
+ return false;
128
+ }
83
129
  const askId = `ask-${++this.askCounter}`;
84
130
  return new Promise(resolve => {
85
- this.pending.set(askId, { id: askId, resolve });
131
+ this.pending.set(askId, { id: askId, tool, resolve });
86
132
  bus.emit({ t: 'ask', askId, tool, args: redactSecrets(args),
87
133
  waiting: this.pending.size - 1 });
88
134
  });
@@ -126,6 +172,28 @@ export class WebSession {
126
172
  provider: this.config.provider, model: this.config.model });
127
173
  return this.agent;
128
174
  }
175
+ /**
176
+ * Takes the opening snapshot.
177
+ *
178
+ * Called once, off the critical path, when the session is created: the walk is bounded but a
179
+ * large workspace still takes a moment, and nothing should wait on a diff view to start working.
180
+ */
181
+ async captureBaseline() {
182
+ const snap = await snapshot(this.config.cwd).catch(() => null);
183
+ if (!snap)
184
+ return;
185
+ this.baseline = snap;
186
+ if (!this.previous)
187
+ this.previous = snap;
188
+ }
189
+ /** Everything this session has changed, against how the workspace looked when it began. */
190
+ async changesSinceStart() {
191
+ if (!this.baseline)
192
+ return null;
193
+ const now = await snapshot(this.config.cwd);
194
+ const changes = compare(this.baseline, now);
195
+ return { changes, totals: summariseChanges(changes) };
196
+ }
129
197
  /** Runs one message. Rejects if a turn is already in flight. */
130
198
  async send(text) {
131
199
  if (this.busy)
@@ -139,7 +207,12 @@ export class WebSession {
139
207
  const agent = await this.ensureAgent();
140
208
  const completed = await agent.send(text);
141
209
  this.turns++;
142
- this.bus.emit({ t: 'turn-end', ms: Date.now() - started, completed });
210
+ const ms = Date.now() - started;
211
+ // What this turn changed, taken while it is still true. Comparing at the end of the session
212
+ // would answer a different question — "what changed overall" hides a file written and then
213
+ // rewritten, which is exactly the thing worth seeing.
214
+ await this.recordTurnChanges(ms).catch(() => { });
215
+ this.bus.emit({ t: 'turn-end', ms, completed });
143
216
  }
144
217
  catch (err) {
145
218
  this.bus.emit({ t: 'error', text: redactSecrets(err.message) });
@@ -156,6 +229,23 @@ export class WebSession {
156
229
  this.pending.clear();
157
230
  }
158
231
  }
232
+ /** Snapshots the workspace and records the difference from the previous turn. */
233
+ async recordTurnChanges(ms) {
234
+ if (!this.previous) {
235
+ await this.captureBaseline();
236
+ return;
237
+ }
238
+ const now = await snapshot(this.config.cwd);
239
+ const changes = compare(this.previous, now);
240
+ this.previous = now;
241
+ if (!changes.length)
242
+ return; // a turn that read and reported is not a change
243
+ const entry = {
244
+ turn: this.turns, at: Date.now(), ms, changes, totals: summariseChanges(changes),
245
+ };
246
+ this.turnChanges.push(entry);
247
+ this.bus.emit({ t: 'changed', turn: entry.turn, ...entry.totals });
248
+ }
159
249
  /** Stops a run in progress, if the engine supports it. */
160
250
  abort() {
161
251
  this.agent?.abort?.();
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/web/sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/web/sessions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui-client.d.ts","sourceRoot":"","sources":["../../src/web/ui-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAmyBrC"}
1
+ {"version":3,"file":"ui-client.d.ts","sourceRoot":"","sources":["../../src/web/ui-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,IAAI,MAAM,CA+4BrC"}
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"ui-client.js","sourceRoot":"","sources":["../../src/web/ui-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiyBlB,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"ui-client.js","sourceRoot":"","sources":["../../src/web/ui-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA64BlB,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui-css.d.ts","sourceRoot":"","sources":["../../src/web/ui-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA0T3C"}
1
+ {"version":3,"file":"ui-css.d.ts","sourceRoot":"","sources":["../../src/web/ui-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgV3C"}
@@ -186,6 +186,7 @@ header{height:47px;flex:0 0 47px;border-bottom:1px solid var(--line);display:fle
186
186
  .ask .btns{display:flex;gap:8px}
187
187
  .ask .btns button{padding:6px 15px;border-radius:7px;border:1px solid var(--line)}
188
188
  .ask .yes{border-color:var(--green);color:var(--green)}
189
+ .ask .always{border-color:var(--cyan);color:var(--cyan)}
189
190
  .ask .no{border-color:var(--red);color:var(--red)}
190
191
 
191
192
  .busy{display:flex;align-items:center;gap:10px;color:var(--amber);font-size:12.5px;margin:8px 0}
@@ -263,6 +264,18 @@ header{height:47px;flex:0 0 47px;border-bottom:1px solid var(--line);display:fle
263
264
  font-variant-numeric:tabular-nums}
264
265
  .code .src{flex:1;padding:10px 14px;white-space:pre;overflow-x:auto;min-width:0}
265
266
 
267
+ /* A two-state switch, used for whole-session/by-turn and for search scope. */
268
+ .segbar{display:inline-flex;gap:2px;background:var(--panel-2);border-radius:8px;padding:2px;
269
+ margin-bottom:14px}
270
+ .seg{padding:4px 12px;border-radius:6px;font-size:12px;color:var(--muted)}
271
+ .seg.on{background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}
272
+ .turnhead{display:flex;align-items:center;gap:10px;margin:18px 0 8px;font-size:12px;
273
+ padding-bottom:6px;border-bottom:1px solid var(--line)}
274
+ .turnhead .tn{font-weight:600}
275
+ .turnhead .tm{color:var(--dim);font-size:11px}
276
+ .turnhead .plus{color:var(--green);font-variant-numeric:tabular-nums}
277
+ .turnhead .minus{color:var(--red);font-variant-numeric:tabular-nums}
278
+
266
279
  /* ── search ──────────────────────────────────────────────── */
267
280
  .searchbar{display:flex;gap:9px;margin-bottom:16px}
268
281
  .searchbar input{flex:1;padding:9px 12px;border-radius:var(--radius);border:1px solid var(--line);
@@ -284,6 +297,8 @@ header{height:47px;flex:0 0 47px;border-bottom:1px solid var(--line);display:fle
284
297
  .hit .role.tool{color:var(--amber);border-color:var(--amber)}
285
298
  .hit .tk{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;
286
299
  white-space:nowrap;flex:1}
300
+ .hit .ws{border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:9.5px;
301
+ color:var(--violet);border-color:var(--violet);letter-spacing:.05em;white-space:nowrap}
287
302
  .hit .sn{font-size:12.5px;font-family:var(--mono);color:var(--ink);word-break:break-word}
288
303
  .hit .sn mark{background:var(--cyan);color:var(--cyan-ink);border-radius:2px;padding:0 1px}
289
304
 
@@ -305,6 +320,13 @@ textarea::placeholder{color:var(--dim)}
305
320
  .readonly{max-width:840px;margin:0 auto;padding:0 24px;font-size:12px;color:var(--dim);
306
321
  display:flex;gap:9px;align-items:center}
307
322
 
323
+ .moderow{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:8px;
324
+ padding:9px 11px;margin-bottom:7px;background:var(--panel-2)}
325
+ .moderow:hover{border-color:var(--cyan)}
326
+ .moderow.on{border-color:var(--cyan)}
327
+ .moderow b{display:block;font-size:13px;font-weight:600}
328
+ .moderow span{font-size:11.5px;color:var(--muted)}
329
+
308
330
  dialog{border:1px solid var(--line);background:var(--panel);color:var(--ink);
309
331
  border-radius:var(--radius);padding:0;max-width:450px;width:92%;box-shadow:var(--shadow)}
310
332
  dialog::backdrop{background:rgba(0,0,0,.5)}
@@ -1 +1 @@
1
- {"version":3,"file":"ui-css.js","sourceRoot":"","sources":["../../src/web/ui-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,GAAG,CAAC,OAAe;IACjC,OAAO;;;;;;;;;;gBAUO,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8StB,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"ui-css.js","sourceRoot":"","sources":["../../src/web/ui-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,GAAG,CAAC,OAAe;IACjC,OAAO;;;;;;;;;;gBAUO,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoUtB,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/web/ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,wBAAgB,IAAI,IAAI,MAAM,CAmI7B"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/web/ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,wBAAgB,IAAI,IAAI,MAAM,CA+I7B"}
package/dist/web/ui.js CHANGED
@@ -47,6 +47,7 @@ export function page() {
47
47
  <button class="tab" id="tab-search">Search</button>
48
48
  </div>
49
49
  <div class="spacer"></div>
50
+ <button class="pill" id="pmode" title="What KONECK may do without asking">mode <b>auto</b></button>
50
51
  <button class="pill" id="pws" title="Switch workspace">workspace <b>&mdash;</b></button>
51
52
  <button class="pill" id="pprov">provider <b>&mdash;</b></button>
52
53
  <button class="pill" id="pmodel">model <b>&mdash;</b></button>
@@ -82,9 +83,13 @@ export function page() {
82
83
  <div class="view" id="searchview" hidden>
83
84
  <div class="wrap">
84
85
  <div class="searchbar">
85
- <input id="q" placeholder="Search everything KONECK has done here&hellip;" autocomplete="off">
86
+ <input id="q" placeholder="Search everything KONECK has ever done&hellip;" autocomplete="off">
86
87
  <button id="qgo">Search</button>
87
88
  </div>
89
+ <div class="segbar" style="margin-bottom:16px">
90
+ <button class="seg on" id="qall">Every workspace</button>
91
+ <button class="seg" id="qhere">This one only</button>
92
+ </div>
88
93
  <div id="qresults"></div>
89
94
  </div>
90
95
  </div>
@@ -127,6 +132,13 @@ export function page() {
127
132
  <div class="row"><button>Cancel</button><button class="go" id="wssave">Switch</button></div>
128
133
  </form></dialog>
129
134
 
135
+ <dialog id="modedlg"><form class="dlg" method="dialog">
136
+ <h3>What may it do without asking?</h3>
137
+ <p>The engine asks the interface about every tool call; this decides which of those reach you.</p>
138
+ <div id="modelist"></div>
139
+ <div class="row"><button>Close</button></div>
140
+ </form></dialog>
141
+
130
142
  <dialog id="mdlg"><form class="dlg" method="dialog">
131
143
  <h3>Model</h3>
132
144
  <p>Applies from your next message.</p>
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/web/ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,UAAU,IAAI;IAClB,OAAO;;;;;;;SAOA,GAAG,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwHrB,YAAY,EAAE;;eAED,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/web/ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,UAAU,IAAI;IAClB,OAAO;;;;;;;SAOA,GAAG,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoIrB,YAAY,EAAE;;eAED,CAAC;AAChB,CAAC"}
@@ -8,6 +8,8 @@
8
8
  export declare function trustedWorkspaces(home?: string): Promise<string[]>;
9
9
  export declare function isWorkspaceTrusted(cwd: string, home?: string): Promise<boolean>;
10
10
  export declare function trustWorkspace(cwd: string, home?: string): Promise<void>;
11
+ /** Removes a persistent grant. The current process remains open; the next launch asks again. */
12
+ export declare function untrustWorkspace(cwd: string, home?: string): Promise<boolean>;
11
13
  /**
12
14
  * Explicitly asks before an interactive agent can inspect or modify a folder.
13
15
  * CI is intentionally handled by the caller, where the user opts in with --ci.
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-trust.d.ts","sourceRoot":"","sources":["../src/workspace-trust.ts"],"names":[],"mappings":"AA6BA;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGxE;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrF;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9E;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBzE"}
1
+ {"version":3,"file":"workspace-trust.d.ts","sourceRoot":"","sources":["../src/workspace-trust.ts"],"names":[],"mappings":"AA6BA;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGxE;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrF;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9E;AAED,gGAAgG;AAChG,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASnF;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBzE"}