@cueloop/client 0.1.0-alpha.69 → 0.1.0-alpha.70

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 (53) hide show
  1. package/package.json +5 -5
  2. package/src/App.appearance.test.tsx +2 -2
  3. package/src/App.autoclose.test.tsx +2 -2
  4. package/src/App.diff.test.tsx +2 -2
  5. package/src/App.export.test.tsx +2 -2
  6. package/src/App.plan-review.test.tsx +2 -2
  7. package/src/App.prototype-markdown.test.tsx +2 -2
  8. package/src/App.prototype.test.tsx +2 -2
  9. package/src/App.readonly.test.tsx +2 -2
  10. package/src/App.rendering.test.tsx +2 -2
  11. package/src/App.submit-confirm.test.tsx +2 -2
  12. package/src/App.test.tsx +2 -2
  13. package/src/App.toast.test.tsx +3 -3
  14. package/src/App.tsx +240 -228
  15. package/src/App.walk.test.tsx +2 -2
  16. package/src/App.workbench.test.tsx +2 -2
  17. package/src/app-key-state.ts +3 -3
  18. package/src/app-screens.tsx +4 -4
  19. package/src/app-view-model.ts +6 -6
  20. package/src/components/AnnotatableFileView.stories.tsx +2 -2
  21. package/src/components/AnnotatableFileView.test.tsx +2 -2
  22. package/src/components/AnnotatableFileView.tsx +2 -2
  23. package/src/components/BareWorkbenchFileView.tsx +2 -7
  24. package/src/components/ChangesColumn.tsx +2 -2
  25. package/src/components/DiffContentView.tsx +2 -2
  26. package/src/components/ThreadView.selection.test.tsx +5 -5
  27. package/src/components/ThreadView.slash.test.tsx +49 -4
  28. package/src/components/ThreadView.tsx +2 -2
  29. package/src/components/WelcomePlayground.tsx +2 -2
  30. package/src/components/__snapshots__/stories.test.tsx.snap +6 -6
  31. package/src/components/agent-launcher.tsx +2 -2
  32. package/src/components/quick-actions-editor.test.tsx +49 -0
  33. package/src/components/quick-actions-editor.tsx +32 -20
  34. package/src/components/session-tree.test.ts +2 -2
  35. package/src/components/session-tree.ts +10 -10
  36. package/src/components/story-fixtures.ts +3 -3
  37. package/src/config.test.ts +30 -1
  38. package/src/config.ts +19 -0
  39. package/src/discussions.ts +2 -2
  40. package/src/intent-dispatch.test.ts +3 -6
  41. package/src/intent-dispatch.ts +6 -6
  42. package/src/serve.test.ts +2 -2
  43. package/src/share.ts +9 -14
  44. package/src/skills.test.ts +74 -0
  45. package/src/skills.ts +68 -0
  46. package/src/slash-palette.ts +10 -3
  47. package/src/{session-controller.curate.test.ts → thread-controller.curate.test.ts} +8 -7
  48. package/src/{session-controller.live-diff.test.ts → thread-controller.live-diff.test.ts} +7 -6
  49. package/src/{session-controller.share.test.ts → thread-controller.share.test.ts} +14 -13
  50. package/src/{session-controller.tree.test.ts → thread-controller.tree.test.ts} +8 -7
  51. package/src/{session-controller.ts → thread-controller.ts} +18 -22
  52. package/src/use-annotation-surface.tsx +14 -10
  53. package/src/view-diff.ts +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cueloop/client",
3
- "version": "0.1.0-alpha.69",
3
+ "version": "0.1.0-alpha.70",
4
4
  "description": "The cueloop review UI: projection renderer, keyboard grammar, review rail",
5
5
  "homepage": "https://github.com/mmurakaru/cueloop#readme",
6
6
  "bugs": {
@@ -27,10 +27,10 @@
27
27
  "access": "public"
28
28
  },
29
29
  "dependencies": {
30
- "@cueloop/daemon": "0.1.0-alpha.69",
31
- "@cueloop/extension-api": "0.1.0-alpha.69",
32
- "@cueloop/integration-obsidian": "0.1.0-alpha.69",
33
- "@cueloop/schema": "0.1.0-alpha.69",
30
+ "@cueloop/daemon": "0.1.0-alpha.70",
31
+ "@cueloop/extension-api": "0.1.0-alpha.70",
32
+ "@cueloop/integration-obsidian": "0.1.0-alpha.70",
33
+ "@cueloop/schema": "0.1.0-alpha.70",
34
34
  "@opentui/core": "^0.5.8",
35
35
  "@opentui/keymap": "0.5.8",
36
36
  "@opentui/react": "^0.5.8",
@@ -6,7 +6,7 @@ import { tmpdir } from "node:os";
6
6
  import { join } from "node:path";
7
7
  import React from "react";
8
8
  import { DaemonServer } from "@cueloop/daemon";
9
- import type { ReviewSession } from "@cueloop/schema";
9
+ import type { Thread } from "@cueloop/schema";
10
10
  import { App } from "./App";
11
11
  import { isolateUserConfig, settle, waitForText, renderReadyApp } from "./test-support";
12
12
 
@@ -14,7 +14,7 @@ const PLAN = "# Sync Plan\n\n## Steps\n\n- flush the queue\n";
14
14
 
15
15
  let home: string;
16
16
  let server: DaemonServer;
17
- let session: ReviewSession;
17
+ let session: Thread;
18
18
  let restoreUserConfig: () => void;
19
19
 
20
20
  beforeEach(() => {
@@ -8,7 +8,7 @@ import React from "react";
8
8
  import { testRender } from "@opentui/react/test-utils";
9
9
  import { ManualClock } from "@opentui/core/testing";
10
10
  import { DaemonServer } from "@cueloop/daemon";
11
- import type { ReviewSession } from "@cueloop/schema";
11
+ import type { Thread } from "@cueloop/schema";
12
12
  import { App } from "./App";
13
13
  import { isolateUserConfig, press, settle, waitForText, pressKey } from "./test-support";
14
14
 
@@ -16,7 +16,7 @@ const PLAN = "# Plan\n\nShip the thing.\n";
16
16
 
17
17
  let home: string;
18
18
  let server: DaemonServer;
19
- let session: ReviewSession;
19
+ let session: Thread;
20
20
  let configPath: string;
21
21
  let restoreUserConfig: () => void;
22
22
  let clock: ManualClock;
@@ -6,7 +6,7 @@ import { tmpdir } from "node:os";
6
6
  import { join } from "node:path";
7
7
  import React from "react";
8
8
  import { DaemonServer } from "@cueloop/daemon";
9
- import type { ReviewSession } from "@cueloop/schema";
9
+ import type { Thread } from "@cueloop/schema";
10
10
  import { App } from "./App";
11
11
  import { NERD } from "./components/primitives/icons";
12
12
  import {
@@ -35,7 +35,7 @@ index 111..222 100644
35
35
  let home: string;
36
36
  let restoreUserConfig: () => void;
37
37
  let server: DaemonServer;
38
- let session: ReviewSession;
38
+ let session: Thread;
39
39
 
40
40
  beforeEach(() => {
41
41
  home = mkdtempSync(join(tmpdir(), "cueloop-diff-"));
@@ -14,7 +14,7 @@ import { tmpdir } from "node:os";
14
14
  import { join } from "node:path";
15
15
  import React from "react";
16
16
  import { DaemonServer } from "@cueloop/daemon";
17
- import type { ReviewSession } from "@cueloop/schema";
17
+ import type { Thread } from "@cueloop/schema";
18
18
  import { App } from "./App";
19
19
  import {
20
20
  isolateUserConfig,
@@ -33,7 +33,7 @@ Move the store atomically.
33
33
  let home: string;
34
34
  let vault: string;
35
35
  let server: DaemonServer;
36
- let session: ReviewSession;
36
+ let session: Thread;
37
37
  let restoreUserConfig: () => void;
38
38
 
39
39
  beforeEach(() => {
@@ -6,7 +6,7 @@ import { tmpdir } from "node:os";
6
6
  import { join } from "node:path";
7
7
  import React from "react";
8
8
  import { DaemonServer } from "@cueloop/daemon";
9
- import type { ReviewSession } from "@cueloop/schema";
9
+ import type { Thread } from "@cueloop/schema";
10
10
  import { App } from "./App";
11
11
  import { DEFAULT_QUICK_ACTIONS } from "./config";
12
12
  import { slashItemsFrom } from "./slash-palette";
@@ -37,7 +37,7 @@ The daemon persists sessions to disk atomically.
37
37
 
38
38
  let home: string;
39
39
  let server: DaemonServer;
40
- let session: ReviewSession;
40
+ let session: Thread;
41
41
  let restoreUserConfig: () => void;
42
42
 
43
43
  beforeEach(() => {
@@ -6,7 +6,7 @@ import { tmpdir } from "node:os";
6
6
  import { join } from "node:path";
7
7
  import React from "react";
8
8
  import { DaemonServer } from "@cueloop/daemon";
9
- import type { ReviewSession } from "@cueloop/schema";
9
+ import type { Thread } from "@cueloop/schema";
10
10
  import { App } from "./App";
11
11
  import { isolateUserConfig, renderReadyApp, settle, waitForText } from "./test-support";
12
12
 
@@ -33,7 +33,7 @@ PromoCard
33
33
 
34
34
  let home: string;
35
35
  let server: DaemonServer;
36
- let session: ReviewSession;
36
+ let session: Thread;
37
37
  let restoreUserConfig: () => void;
38
38
 
39
39
  beforeEach(() => {
@@ -6,7 +6,7 @@ import { tmpdir } from "node:os";
6
6
  import { join } from "node:path";
7
7
  import React from "react";
8
8
  import { DaemonServer } from "@cueloop/daemon";
9
- import type { ReviewSession } from "@cueloop/schema";
9
+ import type { Thread } from "@cueloop/schema";
10
10
  import { App } from "./App";
11
11
  import {
12
12
  setPrototypeRendererFactory,
@@ -55,7 +55,7 @@ const fakeRenderer: PrototypeRenderer = {
55
55
 
56
56
  let home: string;
57
57
  let server: DaemonServer;
58
- let session: ReviewSession;
58
+ let session: Thread;
59
59
  let restoreUserConfig: () => void;
60
60
 
61
61
  beforeEach(() => {
@@ -6,7 +6,7 @@ import { tmpdir } from "node:os";
6
6
  import { join } from "node:path";
7
7
  import React from "react";
8
8
  import { DaemonServer } from "@cueloop/daemon";
9
- import { makeAnchor, parseBlocks, type ReviewSession } from "@cueloop/schema";
9
+ import { makeAnchor, parseBlocks, type Thread } from "@cueloop/schema";
10
10
  import { App } from "./App";
11
11
  import {
12
12
  clickText,
@@ -34,7 +34,7 @@ The daemon persists sessions to disk atomically.
34
34
  let home: string;
35
35
  let restoreUserConfig: () => void;
36
36
  let server: DaemonServer;
37
- let session: ReviewSession;
37
+ let session: Thread;
38
38
 
39
39
  beforeEach(() => {
40
40
  home = mkdtempSync(join(tmpdir(), "cueloop-observer-"));
@@ -6,7 +6,7 @@ import { tmpdir } from "node:os";
6
6
  import { join } from "node:path";
7
7
  import React from "react";
8
8
  import { DaemonServer } from "@cueloop/daemon";
9
- import type { ReviewSession } from "@cueloop/schema";
9
+ import type { Thread } from "@cueloop/schema";
10
10
  import { App } from "./App";
11
11
  import { isolateUserConfig, waitForText, renderReadyApp } from "./test-support";
12
12
 
@@ -31,7 +31,7 @@ Deploys block below the threshold.
31
31
  let home: string;
32
32
  let restoreUserConfig: () => void;
33
33
  let server: DaemonServer;
34
- let session: ReviewSession;
34
+ let session: Thread;
35
35
 
36
36
  beforeEach(() => {
37
37
  home = mkdtempSync(join(tmpdir(), "cueloop-render-"));
@@ -7,7 +7,7 @@ import { join } from "node:path";
7
7
  import React from "react";
8
8
  import { testRender } from "@opentui/react/test-utils";
9
9
  import { DaemonServer } from "@cueloop/daemon";
10
- import { makeAnchor, parseBlocks, type ReviewSession } from "@cueloop/schema";
10
+ import { makeAnchor, parseBlocks, type Thread } from "@cueloop/schema";
11
11
  import { App } from "./App";
12
12
  import {
13
13
  isolateUserConfig,
@@ -33,7 +33,7 @@ The daemon persists sessions to disk atomically.
33
33
  let home: string;
34
34
  let restoreUserConfig: () => void;
35
35
  let server: DaemonServer;
36
- let session: ReviewSession;
36
+ let session: Thread;
37
37
 
38
38
  beforeEach(() => {
39
39
  home = mkdtempSync(join(tmpdir(), "cueloop-confirm-"));
package/src/App.test.tsx CHANGED
@@ -6,7 +6,7 @@ import { tmpdir } from "node:os";
6
6
  import { join } from "node:path";
7
7
  import React from "react";
8
8
  import { DaemonServer } from "@cueloop/daemon";
9
- import type { ReviewSession } from "@cueloop/schema";
9
+ import type { Thread } from "@cueloop/schema";
10
10
  import { App } from "./App";
11
11
  import {
12
12
  clickText,
@@ -37,7 +37,7 @@ The daemon persists sessions to disk atomically.
37
37
  let home: string;
38
38
  let restoreUserConfig: () => void;
39
39
  let server: DaemonServer;
40
- let session: ReviewSession;
40
+ let session: Thread;
41
41
 
42
42
  beforeEach(() => {
43
43
  home = mkdtempSync(join(tmpdir(), "cueloop-app-"));
@@ -7,9 +7,9 @@ import { join } from "node:path";
7
7
  import React from "react";
8
8
  import { testRender } from "@opentui/react/test-utils";
9
9
  import { DaemonServer } from "@cueloop/daemon";
10
- import type { ReviewSession } from "@cueloop/schema";
10
+ import type { Thread } from "@cueloop/schema";
11
11
  import { App } from "./App";
12
- import type { ShareTransport } from "./session-controller";
12
+ import type { ShareTransport } from "./thread-controller";
13
13
  import {
14
14
  clickText,
15
15
  isolateUserConfig,
@@ -38,7 +38,7 @@ const PLAN = `# Migration Plan\n\n## Context\n\nThe daemon persists sessions to
38
38
  let home: string;
39
39
  let restoreUserConfig: () => void;
40
40
  let server: DaemonServer;
41
- let session: ReviewSession;
41
+ let session: Thread;
42
42
 
43
43
  beforeEach(() => {
44
44
  home = mkdtempSync(join(tmpdir(), "cueloop-toast-"));