@graview/primitives 0.1.29 → 0.1.32
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/app-bar.d.ts +2 -0
- package/dist/app-bar.d.ts.map +1 -1
- package/dist/app-bar.js +46 -9
- package/dist/app-bar.js.map +1 -1
- package/dist/app-link.d.ts.map +1 -1
- package/dist/app-link.js +5 -2
- package/dist/app-link.js.map +1 -1
- package/dist/app-title.d.ts +1 -1
- package/dist/app-title.d.ts.map +1 -1
- package/dist/app-title.js +7 -3
- package/dist/app-title.js.map +1 -1
- package/dist/arrange-bar.d.ts +10 -0
- package/dist/arrange-bar.d.ts.map +1 -1
- package/dist/arrange-bar.js +25 -4
- package/dist/arrange-bar.js.map +1 -1
- package/dist/arrange-lists.d.ts +4 -0
- package/dist/arrange-lists.d.ts.map +1 -1
- package/dist/arrange-lists.js +30 -2
- package/dist/arrange-lists.js.map +1 -1
- package/dist/bar-panes.d.ts +1 -1
- package/dist/bar-panes.d.ts.map +1 -1
- package/dist/bar-panes.js +1 -1
- package/dist/bar-panes.js.map +1 -1
- package/dist/bar-suggested.d.ts +2 -0
- package/dist/bar-suggested.d.ts.map +1 -0
- package/dist/bar-suggested.js +22 -0
- package/dist/bar-suggested.js.map +1 -0
- package/dist/chat.d.ts +8 -6
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +6 -3
- package/dist/chat.js.map +1 -1
- package/dist/connections.d.ts +1 -1
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +39 -4
- package/dist/connections.js.map +1 -1
- package/dist/declared-lens-doors.d.ts.map +1 -1
- package/dist/declared-lens-doors.js +4 -1
- package/dist/declared-lens-doors.js.map +1 -1
- package/dist/default-views.d.ts.map +1 -1
- package/dist/default-views.js +60 -17
- package/dist/default-views.js.map +1 -1
- package/dist/draft-frame.d.ts.map +1 -1
- package/dist/draft-frame.js +29 -2
- package/dist/draft-frame.js.map +1 -1
- package/dist/editable.d.ts +8 -1
- package/dist/editable.d.ts.map +1 -1
- package/dist/editable.js +58 -15
- package/dist/editable.js.map +1 -1
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +29 -5
- package/dist/files.js.map +1 -1
- package/dist/find.d.ts.map +1 -1
- package/dist/find.js +110 -11
- package/dist/find.js.map +1 -1
- package/dist/first-look-door.d.ts +71 -0
- package/dist/first-look-door.d.ts.map +1 -0
- package/dist/first-look-door.js +95 -0
- package/dist/first-look-door.js.map +1 -0
- package/dist/first-look.d.ts +12 -0
- package/dist/first-look.d.ts.map +1 -0
- package/dist/first-look.js +265 -0
- package/dist/first-look.js.map +1 -0
- package/dist/frame.d.ts +3 -0
- package/dist/frame.d.ts.map +1 -1
- package/dist/frame.js +4 -0
- package/dist/frame.js.map +1 -1
- package/dist/here.d.ts +24 -1
- package/dist/here.d.ts.map +1 -1
- package/dist/here.js +36 -1
- package/dist/here.js.map +1 -1
- package/dist/index.d.ts +19 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -2
- package/dist/index.js.map +1 -1
- package/dist/inline-ai-door.d.ts +15 -0
- package/dist/inline-ai-door.d.ts.map +1 -0
- package/dist/inline-ai-door.js +54 -0
- package/dist/inline-ai-door.js.map +1 -0
- package/dist/inline-ai-env.d.ts +29 -0
- package/dist/inline-ai-env.d.ts.map +1 -0
- package/dist/inline-ai-env.js +22 -0
- package/dist/inline-ai-env.js.map +1 -0
- package/dist/inline-ai-menu.d.ts +58 -0
- package/dist/inline-ai-menu.d.ts.map +1 -0
- package/dist/inline-ai-menu.js +297 -0
- package/dist/inline-ai-menu.js.map +1 -0
- package/dist/kind-stop.d.ts +3 -1
- package/dist/kind-stop.d.ts.map +1 -1
- package/dist/kind-stop.js +3 -2
- package/dist/kind-stop.js.map +1 -1
- package/dist/lens/arranging.d.ts.map +1 -1
- package/dist/lens/arranging.js +9 -1
- package/dist/lens/arranging.js.map +1 -1
- package/dist/lens/calendar-dates.d.ts.map +1 -1
- package/dist/lens/calendar-dates.js +12 -0
- package/dist/lens/calendar-dates.js.map +1 -1
- package/dist/lens/calendar-drawing.d.ts.map +1 -1
- package/dist/lens/calendar-drawing.js +6 -2
- package/dist/lens/calendar-drawing.js.map +1 -1
- package/dist/lens/calendar-options.d.ts +10 -1
- package/dist/lens/calendar-options.d.ts.map +1 -1
- package/dist/lens/calendar-options.js.map +1 -1
- package/dist/lens/calendar-spans.d.ts +5 -0
- package/dist/lens/calendar-spans.d.ts.map +1 -1
- package/dist/lens/calendar-spans.js +13 -2
- package/dist/lens/calendar-spans.js.map +1 -1
- package/dist/lens/calendar-view.d.ts.map +1 -1
- package/dist/lens/calendar-view.js +16 -2
- package/dist/lens/calendar-view.js.map +1 -1
- package/dist/lens/columns.d.ts +3 -1
- package/dist/lens/columns.d.ts.map +1 -1
- package/dist/lens/columns.js +6 -5
- package/dist/lens/columns.js.map +1 -1
- package/dist/lens/coverage.d.ts +8 -2
- package/dist/lens/coverage.d.ts.map +1 -1
- package/dist/lens/coverage.js +36 -10
- package/dist/lens/coverage.js.map +1 -1
- package/dist/lens-keeping.js +2 -3
- package/dist/lens-keeping.js.map +1 -1
- package/dist/linked-record-door.d.ts +4 -0
- package/dist/linked-record-door.d.ts.map +1 -0
- package/dist/linked-record-door.js +12 -0
- package/dist/linked-record-door.js.map +1 -0
- package/dist/linked-record.d.ts +34 -0
- package/dist/linked-record.d.ts.map +1 -0
- package/dist/linked-record.js +142 -0
- package/dist/linked-record.js.map +1 -0
- package/dist/map-panel.js +52 -3
- package/dist/map-panel.js.map +1 -1
- package/dist/notice-place.d.ts +2 -2
- package/dist/notice-place.js +2 -2
- package/dist/notify-door.d.ts +57 -0
- package/dist/notify-door.d.ts.map +1 -0
- package/dist/notify-door.js +136 -0
- package/dist/notify-door.js.map +1 -0
- package/dist/notify-sheet.d.ts +27 -0
- package/dist/notify-sheet.d.ts.map +1 -0
- package/dist/notify-sheet.js +102 -0
- package/dist/notify-sheet.js.map +1 -0
- package/dist/pages.d.ts +23 -4
- package/dist/pages.d.ts.map +1 -1
- package/dist/pages.js +24 -4
- package/dist/pages.js.map +1 -1
- package/dist/past-bar.d.ts +13 -0
- package/dist/past-bar.d.ts.map +1 -0
- package/dist/past-bar.js +26 -0
- package/dist/past-bar.js.map +1 -0
- package/dist/places.d.ts.map +1 -1
- package/dist/places.js +3 -2
- package/dist/places.js.map +1 -1
- package/dist/primitives/index.d.ts +8 -0
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +67 -29
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/measure.d.ts +10 -0
- package/dist/primitives/measure.d.ts.map +1 -1
- package/dist/primitives/measure.js +27 -7
- package/dist/primitives/measure.js.map +1 -1
- package/dist/quick-ask-desk.d.ts +38 -0
- package/dist/quick-ask-desk.d.ts.map +1 -0
- package/dist/quick-ask-desk.js +36 -0
- package/dist/quick-ask-desk.js.map +1 -0
- package/dist/quick-ask-door.d.ts +33 -0
- package/dist/quick-ask-door.d.ts.map +1 -0
- package/dist/quick-ask-door.js +70 -0
- package/dist/quick-ask-door.js.map +1 -0
- package/dist/quick-ask-setting.d.ts +9 -0
- package/dist/quick-ask-setting.d.ts.map +1 -0
- package/dist/quick-ask-setting.js +11 -0
- package/dist/quick-ask-setting.js.map +1 -0
- package/dist/quick-ask.d.ts +23 -0
- package/dist/quick-ask.d.ts.map +1 -0
- package/dist/quick-ask.js +327 -0
- package/dist/quick-ask.js.map +1 -0
- package/dist/record-interactions-door.d.ts +8 -0
- package/dist/record-interactions-door.d.ts.map +1 -0
- package/dist/record-interactions-door.js +42 -0
- package/dist/record-interactions-door.js.map +1 -0
- package/dist/record-interactions.d.ts +13 -0
- package/dist/record-interactions.d.ts.map +1 -0
- package/dist/record-interactions.js +9 -0
- package/dist/record-interactions.js.map +1 -0
- package/dist/scene-bar.d.ts.map +1 -1
- package/dist/scene-bar.js +5 -2
- package/dist/scene-bar.js.map +1 -1
- package/dist/scene-css.d.ts.map +1 -1
- package/dist/scene-css.js +79 -8
- package/dist/scene-css.js.map +1 -1
- package/dist/scene-way-back-door.d.ts.map +1 -1
- package/dist/scene-way-back-door.js +9 -0
- package/dist/scene-way-back-door.js.map +1 -1
- package/dist/scene.d.ts +11 -2
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +10 -1
- package/dist/scene.js.map +1 -1
- package/dist/shell.d.ts +23 -24
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +9 -3
- package/dist/shell.js.map +1 -1
- package/dist/spec-css.d.ts.map +1 -1
- package/dist/spec-css.js +22 -2
- package/dist/spec-css.js.map +1 -1
- package/dist/spec-views.d.ts +6 -1
- package/dist/spec-views.d.ts.map +1 -1
- package/dist/spec-views.js +82 -16
- package/dist/spec-views.js.map +1 -1
- package/dist/stretched-link.d.ts +18 -0
- package/dist/stretched-link.d.ts.map +1 -0
- package/dist/stretched-link.js +47 -0
- package/dist/stretched-link.js.map +1 -0
- package/dist/suggested.d.ts +13 -0
- package/dist/suggested.d.ts.map +1 -0
- package/dist/suggested.js +82 -0
- package/dist/suggested.js.map +1 -0
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +25 -28
- package/dist/theme.js.map +1 -1
- package/dist/timeline.d.ts +6 -0
- package/dist/timeline.d.ts.map +1 -0
- package/dist/timeline.js +150 -0
- package/dist/timeline.js.map +1 -0
- package/dist/way-back.d.ts.map +1 -1
- package/dist/way-back.js +3 -0
- package/dist/way-back.js.map +1 -1
- package/dist/when-input-door.d.ts +8 -0
- package/dist/when-input-door.d.ts.map +1 -0
- package/dist/when-input-door.js +19 -0
- package/dist/when-input-door.js.map +1 -0
- package/dist/when-input.d.ts +34 -0
- package/dist/when-input.d.ts.map +1 -0
- package/dist/when-input.js +122 -0
- package/dist/when-input.js.map +1 -0
- package/dist/when-picker-door.d.ts +6 -0
- package/dist/when-picker-door.d.ts.map +1 -0
- package/dist/when-picker-door.js +15 -0
- package/dist/when-picker-door.js.map +1 -0
- package/dist/when-picker.d.ts +16 -0
- package/dist/when-picker.d.ts.map +1 -0
- package/dist/when-picker.js +108 -0
- package/dist/when-picker.js.map +1 -0
- package/dist/workbench/activity.d.ts +24 -0
- package/dist/workbench/activity.d.ts.map +1 -1
- package/dist/workbench/activity.js +159 -33
- package/dist/workbench/activity.js.map +1 -1
- package/dist/workbench/agent-seat.d.ts.map +1 -1
- package/dist/workbench/agent-seat.js +5 -2
- package/dist/workbench/agent-seat.js.map +1 -1
- package/dist/workbench/ai-entries.d.ts +22 -0
- package/dist/workbench/ai-entries.d.ts.map +1 -0
- package/dist/workbench/ai-entries.js +75 -0
- package/dist/workbench/ai-entries.js.map +1 -0
- package/dist/workbench/ai-feed.d.ts +12 -0
- package/dist/workbench/ai-feed.d.ts.map +1 -0
- package/dist/workbench/ai-feed.js +14 -0
- package/dist/workbench/ai-feed.js.map +1 -0
- package/dist/workbench/answer-args.d.ts.map +1 -1
- package/dist/workbench/answer-args.js +87 -10
- package/dist/workbench/answer-args.js.map +1 -1
- package/dist/workbench/back-out.d.ts.map +1 -1
- package/dist/workbench/back-out.js +7 -2
- package/dist/workbench/back-out.js.map +1 -1
- package/dist/workbench/inspector-door.d.ts +3 -1
- package/dist/workbench/inspector-door.d.ts.map +1 -1
- package/dist/workbench/inspector-door.js +7 -6
- package/dist/workbench/inspector-door.js.map +1 -1
- package/dist/workbench/inspector.d.ts +2 -1
- package/dist/workbench/inspector.d.ts.map +1 -1
- package/dist/workbench/inspector.js +94 -17
- package/dist/workbench/inspector.js.map +1 -1
- package/dist/workbench/trail.d.ts.map +1 -1
- package/dist/workbench/trail.js +10 -2
- package/dist/workbench/trail.js.map +1 -1
- package/package.json +6 -6
- package/dist/seat-field.d.ts +0 -58
- package/dist/seat-field.d.ts.map +0 -1
- package/dist/seat-field.js +0 -183
- package/dist/seat-field.js.map +0 -1
- package/dist/seat-panel.d.ts +0 -38
- package/dist/seat-panel.d.ts.map +0 -1
- package/dist/seat-panel.js +0 -212
- package/dist/seat-panel.js.map +0 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,OAAO,EACP,cAAc,EACd,SAAS,EACT,MAAM,EACN,cAAc,EACd,aAAa,EACb,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAU5B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,mBAAmB,EAAE,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpQ,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACrG,qGAAqG;AACrG,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,qHAAqH;AACrH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,gHAAgH;AAChH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAkB,MAAM,gBAAgB,CAAC;AAChF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type MenuSectionSource } from "@graview/react/provider";
|
|
2
|
+
import { type ReactNode } from "react";
|
|
3
|
+
export interface GhostDoorProps {
|
|
4
|
+
/** Over the scene's picture (the default), or over a page's window. */
|
|
5
|
+
readonly placement?: "picture" | "page";
|
|
6
|
+
}
|
|
7
|
+
/** The inline AI's section of the context menu, or null where it is not drawn. Hand it to `MenuSections`. */
|
|
8
|
+
export declare function useInlineAiSection(): MenuSectionSource | null;
|
|
9
|
+
/** The context menu drawn inside, with the inline AI's section where it is drawn at all. */
|
|
10
|
+
export declare function InlineAiSections({ children }: {
|
|
11
|
+
readonly children: ReactNode;
|
|
12
|
+
}): import("react").JSX.Element;
|
|
13
|
+
/** What the inline AI proposed and has not made, with Accept, Accept some and Dismiss — then the one undo. Nothing while nothing waits. */
|
|
14
|
+
export declare function GhostDoor(props: GhostDoorProps): import("react").JSX.Element | null;
|
|
15
|
+
//# sourceMappingURL=inline-ai-door.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-ai-door.d.ts","sourceRoot":"","sources":["../src/inline-ai-door.tsx"],"names":[],"mappings":"AACA,OAAO,EAA0C,KAAK,iBAAiB,EAAmB,MAAM,yBAAyB,CAAC;AAG1H,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA0B9E,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CACzC;AAED,6GAA6G;AAC7G,wBAAgB,kBAAkB,IAAI,iBAAiB,GAAG,IAAI,CAkB7D;AAID,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAI9E;AAED,2IAA2I;AAC3I,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,sCAU9C"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { retryingImport } from "@graview/core/retry";
|
|
3
|
+
import { lazyModule, useAiDeskState, useGraview } from "@graview/react/provider";
|
|
4
|
+
import { inlineAiOn } from "@graview/tools/frame";
|
|
5
|
+
import { MenuSections } from "@graview/react/drawing";
|
|
6
|
+
import { Suspense, useMemo } from "react";
|
|
7
|
+
/**
|
|
8
|
+
* THE DOOR TO THE INLINE AI (Roadmap f-ai-candidate-catalog): a section of
|
|
9
|
+
* the context menu on both faces, and the ghost of what it proposed, each
|
|
10
|
+
* fetched when it is first drawn — a page whose reader never right-clicks
|
|
11
|
+
* carries none of the catalog, the models' slots or the tray.
|
|
12
|
+
*
|
|
13
|
+
* Drawn only where the host gave a model (`ai.fast`, `ai.thinking`, or the
|
|
14
|
+
* `decide` and `complete` behind them) and did not say AI is off: then
|
|
15
|
+
* there is no section, no tray and no row anywhere — hidden, not disabled.
|
|
16
|
+
*/
|
|
17
|
+
const menuModule = /* @__PURE__ */ lazyModule(retryingImport(() => import("./inline-ai-menu.js")));
|
|
18
|
+
const Menu = /* @__PURE__ */ menuModule.part((module, props) => {
|
|
19
|
+
const Drawn = module.InlineAiMenu;
|
|
20
|
+
return _jsx(Drawn, { ...props });
|
|
21
|
+
}, { what: "The AI's suggestions" });
|
|
22
|
+
const Tray = /* @__PURE__ */ menuModule.part((module, props) => {
|
|
23
|
+
const Drawn = module.GhostTray;
|
|
24
|
+
return _jsx(Drawn, { ...props });
|
|
25
|
+
}, { quiet: true });
|
|
26
|
+
/** The inline AI's section of the context menu, or null where it is not drawn. Hand it to `MenuSections`. */
|
|
27
|
+
export function useInlineAiSection() {
|
|
28
|
+
const { ai } = useGraview();
|
|
29
|
+
const on = inlineAiOn(ai);
|
|
30
|
+
return useMemo(() => on
|
|
31
|
+
? (target) => ({
|
|
32
|
+
id: "inline-ai",
|
|
33
|
+
heading: "AI",
|
|
34
|
+
render: (close) => (_jsx(Suspense, { fallback: null, children: _jsx(Menu, { target: target, close: close }) })),
|
|
35
|
+
})
|
|
36
|
+
: null, [on]);
|
|
37
|
+
}
|
|
38
|
+
const NONE = [];
|
|
39
|
+
/** The context menu drawn inside, with the inline AI's section where it is drawn at all. */
|
|
40
|
+
export function InlineAiSections({ children }) {
|
|
41
|
+
const section = useInlineAiSection();
|
|
42
|
+
const sections = useMemo(() => (section ? [section] : NONE), [section]);
|
|
43
|
+
return _jsx(MenuSections, { sections: sections, children: children });
|
|
44
|
+
}
|
|
45
|
+
/** What the inline AI proposed and has not made, with Accept, Accept some and Dismiss — then the one undo. Nothing while nothing waits. */
|
|
46
|
+
export function GhostDoor(props) {
|
|
47
|
+
const { ai, aiDesk } = useGraview();
|
|
48
|
+
const { ghost } = useAiDeskState(aiDesk);
|
|
49
|
+
// One the quick ask's card draws itself is not drawn again at the foot.
|
|
50
|
+
if (ghost === null || ghost.onCard || ai.off)
|
|
51
|
+
return null;
|
|
52
|
+
return (_jsx(Suspense, { fallback: null, children: _jsx(Tray, { ...props }) }));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=inline-ai-door.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-ai-door.js","sourceRoot":"","sources":["../src/inline-ai-door.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAA2C,MAAM,yBAAyB,CAAC;AAC1H,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAsC,MAAM,OAAO,CAAC;AAG9E;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACnG,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAC1C,CAAC,MAAM,EAAE,KAAwB,EAAE,EAAE;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAgD,CAAC;IACtE,OAAO,KAAC,KAAK,OAAK,KAAK,GAAI,CAAC;AAC9B,CAAC,EACD,EAAE,IAAI,EAAE,sBAAsB,EAAE,CACjC,CAAC;AACF,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAqB,EAAE,EAAE;IAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,SAA0C,CAAC;IAChE,OAAO,KAAC,KAAK,OAAK,KAAK,GAAI,CAAC;AAC9B,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAOpB,6GAA6G;AAC7G,MAAM,UAAU,kBAAkB;IAChC,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAC1B,OAAO,OAAO,CACZ,GAAG,EAAE,CACH,EAAE;QACA,CAAC,CAAC,CAAC,MAAkB,EAAE,EAAE,CAAC,CAAC;YACvB,EAAE,EAAE,WAAW;YACf,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,CAC7B,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACtB,KAAC,IAAI,IAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAI,GAC7B,CACZ;SACF,CAAC;QACJ,CAAC,CAAC,IAAI,EACV,CAAC,EAAE,CAAC,CACL,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAiC,EAAE,CAAC;AAE9C,4FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAAC,EAAE,QAAQ,EAAoC;IAC7E,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,OAAO,KAAC,YAAY,IAAC,QAAQ,EAAE,QAAQ,YAAG,QAAQ,GAAgB,CAAC;AACrE,CAAC;AAED,2IAA2I;AAC3I,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;IACpC,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACzC,wEAAwE;IACxE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,CACL,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACtB,KAAC,IAAI,OAAK,KAAK,GAAI,GACV,CACZ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { AnySchema, GraviewApp, Principal, Store } from "@graview/core";
|
|
2
|
+
import type { CatalogPlace } from "@graview/core/catalog";
|
|
3
|
+
import { type AiDesk, type GoTo, type SeatTalk } from "@graview/react/provider";
|
|
4
|
+
import type { HostAi } from "@graview/tools/frame";
|
|
5
|
+
/**
|
|
6
|
+
* WHAT THE INLINE AI'S RUNNER NEEDS OF THE FACE IT RUNS ON: the store as
|
|
7
|
+
* now (never the past a face may be showing), who is asking, the host's AI,
|
|
8
|
+
* the app's desk and conversation, the way to go somewhere, the places,
|
|
9
|
+
* the app a panel is drafted against, where the viewer is and what is
|
|
10
|
+
* selected. Plain values, read here once, so the menu, Activity's "Ask
|
|
11
|
+
* again" and a later quick ask run the same code (`inline-ai-menu.tsx`).
|
|
12
|
+
* Apart from the runner so a surface can hold one before the runner is
|
|
13
|
+
* fetched.
|
|
14
|
+
*/
|
|
15
|
+
export interface InlineEnv {
|
|
16
|
+
readonly store: Store<AnySchema>;
|
|
17
|
+
readonly principal: Principal;
|
|
18
|
+
readonly ai: HostAi;
|
|
19
|
+
readonly desk: AiDesk;
|
|
20
|
+
readonly seatTalk: SeatTalk;
|
|
21
|
+
readonly goTo: GoTo;
|
|
22
|
+
readonly places: readonly CatalogPlace[];
|
|
23
|
+
readonly app: GraviewApp<AnySchema>;
|
|
24
|
+
readonly place?: string;
|
|
25
|
+
readonly selection: readonly string[];
|
|
26
|
+
}
|
|
27
|
+
/** The runner's environment, from the provider it is drawn under. */
|
|
28
|
+
export declare function useInlineEnv(): InlineEnv;
|
|
29
|
+
//# sourceMappingURL=inline-ai-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-ai-env.d.ts","sourceRoot":"","sources":["../src/inline-ai-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAqC,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,qEAAqE;AACrE,wBAAgB,YAAY,IAAI,SAAS,CAoBxC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useGoTo, useGraview, useLiveStore } from "@graview/react/provider";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
/** The runner's environment, from the provider it is drawn under. */
|
|
4
|
+
export function useInlineEnv() {
|
|
5
|
+
const { store: shown, principal, ai, aiDesk, seatTalk, views, app, brand, view, selection } = useGraview();
|
|
6
|
+
const store = useLiveStore(shown, principal);
|
|
7
|
+
const goTo = useGoTo();
|
|
8
|
+
const place = view.within?.["view"];
|
|
9
|
+
return useMemo(() => ({
|
|
10
|
+
store,
|
|
11
|
+
principal,
|
|
12
|
+
ai,
|
|
13
|
+
desk: aiDesk,
|
|
14
|
+
seatTalk,
|
|
15
|
+
goTo,
|
|
16
|
+
places: views.places().map((one) => ({ as: one.as, title: one.title, kind: one.kind })),
|
|
17
|
+
app: app ?? { name: brand?.name ?? "app", schema: store.schema, ...(store.policy ? { policy: store.policy } : {}) },
|
|
18
|
+
...(place ? { place } : {}),
|
|
19
|
+
selection,
|
|
20
|
+
}), [store, principal, ai, aiDesk, seatTalk, goTo, views, app, brand, place, selection]);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=inline-ai-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-ai-env.js","sourceRoot":"","sources":["../src/inline-ai-env.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAyC,MAAM,yBAAyB,CAAC;AAEnH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAyBhC,qEAAqE;AACrE,MAAM,UAAU,YAAY;IAC1B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,EAAa,CAAC;IACtH,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,KAAK;QACL,SAAS;QACT,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,QAAQ;QACR,IAAI;QACJ,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,GAAG,EAAG,GAAyC,IAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAuC;QAChM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,SAAS;KACV,CAAC,EACF,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CACpF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { type AiCandidate, type AiInteraction, type AiPanel, type AiTarget } from "@graview/core/catalog";
|
|
2
|
+
import { type MenuTarget } from "@graview/react/provider";
|
|
3
|
+
import { type InlineAsk, type InlineResult } from "@graview/tools/inline-ai";
|
|
4
|
+
import { type InlineEnv } from "./inline-ai-env.js";
|
|
5
|
+
import "./frame.js";
|
|
6
|
+
/**
|
|
7
|
+
* THE INLINE AI, AS THE FACES DRAW IT (Roadmap f-ai-candidate-catalog) —
|
|
8
|
+
* fetched with the first menu that shows it (`inline-ai-door.tsx`).
|
|
9
|
+
*
|
|
10
|
+
* In the context menu, on what it was opened on: the Fast model's few
|
|
11
|
+
* suggestions, picked from the catalog (a value to fill, an act that asks
|
|
12
|
+
* nothing, a panel, a place, a record), each taken with one press; "Fill
|
|
13
|
+
* in" for a record whose fields the catalog has values for; "Draw a panel"
|
|
14
|
+
* for whatever has a kind. A proposed change is a ghost, waiting on the
|
|
15
|
+
* tray (`GhostTray`) for Accept, Accept some or Dismiss, and then for its
|
|
16
|
+
* one undo; a panel is drawn where the seat draws a view, where "Keep as a
|
|
17
|
+
* lens" makes it a real one. Every interaction the person takes up is an
|
|
18
|
+
* entry Activity draws (`aiDesk.record`), and its host keeps.
|
|
19
|
+
*
|
|
20
|
+
* The runner (`inlineEnv`, `askInline`, `takeOffer`, `drawPanel`,
|
|
21
|
+
* `askAgain`) takes plain values, not hooks, so Activity's "Ask again" and
|
|
22
|
+
* "Show the panel" and the quick ask's card (`quick-ask.tsx`) reach the
|
|
23
|
+
* same code. "Ask about this…" opens the quick ask's bar on the target.
|
|
24
|
+
*/
|
|
25
|
+
/** One ask of the inline AI, as the engine takes it: the acts the derivation offers this viewer there, the places, where they are. */
|
|
26
|
+
export declare function askOf(env: InlineEnv, target: AiTarget, said?: string): InlineAsk;
|
|
27
|
+
/** DRAWN WHERE THE SEAT DRAWS A VIEW, from its recipe: "Keep as a lens" there makes it a real lens. Answers a sentence when it cannot be drawn. */
|
|
28
|
+
export declare function drawPanel(env: InlineEnv, panel: AiPanel): Promise<string | undefined>;
|
|
29
|
+
/**
|
|
30
|
+
* ASK THE INLINE AI: a suggestion (answered, not yet kept — the menu shows
|
|
31
|
+
* it), fills (a ghost on the tray, its entry kept), or a panel (drawn, its
|
|
32
|
+
* entry kept). A failure is kept too, said in its entry.
|
|
33
|
+
*/
|
|
34
|
+
export declare function askInline(env: InlineEnv, kind: "suggest" | "fill" | "record" | "panel", target: AiTarget, said?: string): Promise<InlineResult>;
|
|
35
|
+
/** TAKE ONE OF A SUGGESTION'S OFFERS: a change waits as a ghost; a panel is drawn; a place or a record is gone to. Its entry is kept. */
|
|
36
|
+
export declare function takeOffer(env: InlineEnv, result: InlineResult, offer: AiCandidate): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* ASK AGAIN, from an entry in Activity: the same ask, on the same target, as
|
|
39
|
+
* a new interaction. A suggestion asked again is a fill; words asked of the
|
|
40
|
+
* quick ask are asked again on its card, beside the target.
|
|
41
|
+
*/
|
|
42
|
+
export declare function askAgain(env: InlineEnv, entry: AiInteraction): Promise<InlineResult | null>;
|
|
43
|
+
export interface InlineAiMenuProps {
|
|
44
|
+
readonly target: MenuTarget;
|
|
45
|
+
readonly close: () => void;
|
|
46
|
+
}
|
|
47
|
+
/** The menu's AI section: the suggestions as they arrive, then the asks this target supports. */
|
|
48
|
+
export declare function InlineAiMenu({ target: menu, close }: InlineAiMenuProps): import("react").JSX.Element;
|
|
49
|
+
/**
|
|
50
|
+
* THE GHOST: changes the AI proposed and has not made, each in the act's
|
|
51
|
+
* own sentence and how sure the model was, with a box to keep it or leave
|
|
52
|
+
* it out. Accept takes the ones ticked as one batch; Dismiss puts it away;
|
|
53
|
+
* once taken, Undo takes the batch back.
|
|
54
|
+
*/
|
|
55
|
+
export declare function GhostTray({ placement }: {
|
|
56
|
+
readonly placement?: "picture" | "page" | "card";
|
|
57
|
+
}): import("react").JSX.Element | null;
|
|
58
|
+
//# sourceMappingURL=inline-ai-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-ai-menu.d.ts","sourceRoot":"","sources":["../src/inline-ai-menu.tsx"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjI,OAAO,EAA4C,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEpG,OAAO,EAA4I,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEvN,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;GAkBG;AAEH,sIAAsI;AACtI,wBAAgB,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAwBhF;AAED,mJAAmJ;AACnJ,wBAAsB,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ3F;AA6BD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBrJ;AAED,yIAAyI;AACzI,wBAAsB,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBvG;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAOjG;AAKD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,iGAAiG;AACjG,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,iBAAiB,+BA8FtE;AAID;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,SAAqB,EAAE,EAAE;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE,sCAgIxG"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { layer } from "@graview/core";
|
|
3
|
+
import { aiTargetOf, catalogOf } from "@graview/core/catalog";
|
|
4
|
+
import { useAiDeskState, useGraview, useLiveStore } from "@graview/react/provider";
|
|
5
|
+
import { deriveAffordances } from "@graview/tools/derive";
|
|
6
|
+
import { acceptedEntry, acceptGhost, dismissedEntry, fillHere, ghostOf, interactionId, panelHere, proposalOf, recordHere, suggestHere, thinkingOf } from "@graview/tools/inline-ai";
|
|
7
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
8
|
+
import { useInlineEnv } from "./inline-ai-env.js";
|
|
9
|
+
import { openQuickAsk } from "./quick-ask-desk.js";
|
|
10
|
+
import "./frame.js"; // A door: tied to what the page drew first (TIED DOORS, packages/primitives/src/frame.ts).
|
|
11
|
+
/**
|
|
12
|
+
* THE INLINE AI, AS THE FACES DRAW IT (Roadmap f-ai-candidate-catalog) —
|
|
13
|
+
* fetched with the first menu that shows it (`inline-ai-door.tsx`).
|
|
14
|
+
*
|
|
15
|
+
* In the context menu, on what it was opened on: the Fast model's few
|
|
16
|
+
* suggestions, picked from the catalog (a value to fill, an act that asks
|
|
17
|
+
* nothing, a panel, a place, a record), each taken with one press; "Fill
|
|
18
|
+
* in" for a record whose fields the catalog has values for; "Draw a panel"
|
|
19
|
+
* for whatever has a kind. A proposed change is a ghost, waiting on the
|
|
20
|
+
* tray (`GhostTray`) for Accept, Accept some or Dismiss, and then for its
|
|
21
|
+
* one undo; a panel is drawn where the seat draws a view, where "Keep as a
|
|
22
|
+
* lens" makes it a real one. Every interaction the person takes up is an
|
|
23
|
+
* entry Activity draws (`aiDesk.record`), and its host keeps.
|
|
24
|
+
*
|
|
25
|
+
* The runner (`inlineEnv`, `askInline`, `takeOffer`, `drawPanel`,
|
|
26
|
+
* `askAgain`) takes plain values, not hooks, so Activity's "Ask again" and
|
|
27
|
+
* "Show the panel" and the quick ask's card (`quick-ask.tsx`) reach the
|
|
28
|
+
* same code. "Ask about this…" opens the quick ask's bar on the target.
|
|
29
|
+
*/
|
|
30
|
+
/** One ask of the inline AI, as the engine takes it: the acts the derivation offers this viewer there, the places, where they are. */
|
|
31
|
+
export function askOf(env, target, said) {
|
|
32
|
+
const about = target.on === "selection" ? target.ids : target.on === "record" || target.on === "field" ? [target.id] : [];
|
|
33
|
+
const acts = about.length > 0
|
|
34
|
+
? deriveAffordances(env.store, about, { principal: env.principal, ...(about.length === 1 ? { focus: about[0] } : {}) }).affordances.map((affordance) => ({
|
|
35
|
+
mutation: affordance.mutation,
|
|
36
|
+
label: affordance.label,
|
|
37
|
+
args: affordance.args,
|
|
38
|
+
open: affordance.open,
|
|
39
|
+
why: affordance.why,
|
|
40
|
+
...(affordance.destructive ? { destructive: true } : {}),
|
|
41
|
+
}))
|
|
42
|
+
: undefined;
|
|
43
|
+
return {
|
|
44
|
+
store: env.store,
|
|
45
|
+
target,
|
|
46
|
+
principal: env.principal,
|
|
47
|
+
interaction: interactionId(),
|
|
48
|
+
places: env.places,
|
|
49
|
+
selection: env.selection,
|
|
50
|
+
...(acts ? { acts } : {}),
|
|
51
|
+
...(env.place ? { place: env.place } : {}),
|
|
52
|
+
...(said ? { said } : {}),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/** DRAWN WHERE THE SEAT DRAWS A VIEW, from its recipe: "Keep as a lens" there makes it a real lens. Answers a sentence when it cannot be drawn. */
|
|
56
|
+
export async function drawPanel(env, panel) {
|
|
57
|
+
const engine = await import("@graview/tools/draft");
|
|
58
|
+
const drafted = engine.recipeDraft(panel.recipe, { app: env.app, sight: engine.draftSight(env.app, env.principal) });
|
|
59
|
+
if (engine.isDraftFailure(drafted))
|
|
60
|
+
return drafted.failed;
|
|
61
|
+
env.seatTalk.setDraft(drafted, null);
|
|
62
|
+
env.goTo.draft?.();
|
|
63
|
+
keyboardToTheDraft();
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
/*
|
|
67
|
+
* THE KEYBOARD GOES TO THE PANEL. The menu row that asked for it is gone,
|
|
68
|
+
* and over the scene the panel stands in place of the picture, which is
|
|
69
|
+
* made inert under it: a keyboard left behind would land on <body>. Once
|
|
70
|
+
* the frame is drawn — fetched, the first time, so for up to three seconds
|
|
71
|
+
* of frames — "Keep as a lens" takes it, unless the reader has already put
|
|
72
|
+
* the keyboard somewhere of their own.
|
|
73
|
+
*/
|
|
74
|
+
function keyboardToTheDraft(tries = 180) {
|
|
75
|
+
if (typeof document === "undefined")
|
|
76
|
+
return;
|
|
77
|
+
const keep = document.querySelector('[data-testid="draft-keep"]');
|
|
78
|
+
const active = document.activeElement;
|
|
79
|
+
const nowhere = !active || active === document.body || active.closest?.("[inert]") !== null;
|
|
80
|
+
if (keep) {
|
|
81
|
+
if (nowhere)
|
|
82
|
+
keep.focus();
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (tries > 0)
|
|
86
|
+
requestAnimationFrame(() => keyboardToTheDraft(tries - 1));
|
|
87
|
+
}
|
|
88
|
+
/** A ghost of these proposals, waiting on the tray, its entry kept. */
|
|
89
|
+
function holdGhost(env, entry, result) {
|
|
90
|
+
if (!result.ghost || result.ghost.proposals.length === 0)
|
|
91
|
+
return;
|
|
92
|
+
env.desk.setGhost({ ghost: result.ghost });
|
|
93
|
+
env.desk.record(entry);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* ASK THE INLINE AI: a suggestion (answered, not yet kept — the menu shows
|
|
97
|
+
* it), fills (a ghost on the tray, its entry kept), or a panel (drawn, its
|
|
98
|
+
* entry kept). A failure is kept too, said in its entry.
|
|
99
|
+
*/
|
|
100
|
+
export async function askInline(env, kind, target, said) {
|
|
101
|
+
const ask = askOf(env, target, said);
|
|
102
|
+
const result = kind === "suggest" ? await suggestHere(env.ai, ask) : kind === "fill" ? await fillHere(env.ai, ask) : kind === "record" ? await recordHere(env.ai, ask) : await panelHere(env.ai, ask);
|
|
103
|
+
if (result.interaction.outcome === "failed") {
|
|
104
|
+
if (kind !== "suggest")
|
|
105
|
+
env.desk.record(result.interaction);
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
if (kind === "fill" || kind === "record") {
|
|
109
|
+
if (result.ghost)
|
|
110
|
+
holdGhost(env, result.interaction, result);
|
|
111
|
+
else
|
|
112
|
+
env.desk.record({ ...result.interaction, outcome: "failed", failed: "Nothing here could be filled in." });
|
|
113
|
+
}
|
|
114
|
+
if (kind === "panel" && result.panel) {
|
|
115
|
+
const failed = await drawPanel(env, result.panel);
|
|
116
|
+
env.desk.record(failed ? { ...result.interaction, outcome: "failed", failed } : result.interaction);
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
/** TAKE ONE OF A SUGGESTION'S OFFERS: a change waits as a ghost; a panel is drawn; a place or a record is gone to. Its entry is kept. */
|
|
121
|
+
export async function takeOffer(env, result, offer) {
|
|
122
|
+
const entry = result.interaction;
|
|
123
|
+
const proposal = proposalOf(offer);
|
|
124
|
+
if (proposal) {
|
|
125
|
+
const model = entry.usage?.at(-1)?.model;
|
|
126
|
+
const confidence = entry.offered.find((one) => one.id === offer.id)?.confidence;
|
|
127
|
+
const ghost = ghostOf(env.store, { interaction: entry.id, target: entry.target, basis: `${entry.ask.said}: ${offer.label}`, ...(model ? { model } : {}), proposals: [{ ...proposal, ...(confidence !== undefined ? { confidence } : {}) }] }, env.principal);
|
|
128
|
+
if (ghost.proposals.length === 0) {
|
|
129
|
+
env.desk.record({ ...entry, outcome: "failed", failed: "That can't be done now." });
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
env.desk.setGhost({ ghost });
|
|
133
|
+
env.desk.record(entry);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
if (offer.type === "panel") {
|
|
137
|
+
const title = offer.label;
|
|
138
|
+
const panel = { title, recipe: { ...offer.panel, title } };
|
|
139
|
+
const failed = await drawPanel(env, panel);
|
|
140
|
+
env.desk.record(failed ? { ...entry, outcome: "failed", failed } : { ...entry, outcome: "drawn", accepted: [offer.id], panel });
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (offer.type === "place")
|
|
144
|
+
env.goTo.place(offer.place);
|
|
145
|
+
else if (offer.type === "record")
|
|
146
|
+
env.goTo.record(offer.record);
|
|
147
|
+
env.desk.record({ ...entry, outcome: "accepted", accepted: [offer.id] });
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* ASK AGAIN, from an entry in Activity: the same ask, on the same target, as
|
|
151
|
+
* a new interaction. A suggestion asked again is a fill; words asked of the
|
|
152
|
+
* quick ask are asked again on its card, beside the target.
|
|
153
|
+
*/
|
|
154
|
+
export async function askAgain(env, entry) {
|
|
155
|
+
if (entry.ask.kind === "ask") {
|
|
156
|
+
openQuickAsk(env.desk, { target: entry.target, asked: entry.ask.said });
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
const kind = entry.ask.kind === "panel" || entry.ask.kind === "record" ? entry.ask.kind : "fill";
|
|
160
|
+
return askInline(env, kind, entry.target, entry.ask.said);
|
|
161
|
+
}
|
|
162
|
+
const ROW = { padding: "5px 10px", fontSize: "0.875rem", borderRadius: 8, width: "100%", textAlign: "left", borderWidth: 1, borderStyle: "solid", borderColor: "transparent", background: "none", boxShadow: "none" };
|
|
163
|
+
const QUIET = { margin: 0, padding: "4px 10px", fontSize: "0.8125rem", color: "var(--graview-ink-muted)" };
|
|
164
|
+
/** The menu's AI section: the suggestions as they arrive, then the asks this target supports. */
|
|
165
|
+
export function InlineAiMenu({ target: menu, close }) {
|
|
166
|
+
const env = useInlineEnv();
|
|
167
|
+
const target = useMemo(() => aiTargetOf(menu, (id) => env.store.graph.has(id)), [menu, env.store]);
|
|
168
|
+
// What the target supports at all, read once: a fill only where there are values, a panel only where there is a kind.
|
|
169
|
+
const catalog = useMemo(() => {
|
|
170
|
+
const ask = askOf(env, target);
|
|
171
|
+
return catalogOf(env.store, target, { principal: env.principal, places: env.places, ...(ask.acts ? { acts: ask.acts } : {}) });
|
|
172
|
+
}, [env, target]);
|
|
173
|
+
const fills = catalog.candidates.some((candidate) => candidate.type === "fill");
|
|
174
|
+
const panels = catalog.candidates.some((candidate) => candidate.type === "panel");
|
|
175
|
+
// A record made by an act that asks for words, where a thinking model can write them.
|
|
176
|
+
const makes = useMemo(() => new Set(env.store.allMutations().filter((mutation) => (mutation.creates ?? []).length > 0).map((mutation) => mutation.name)), [env.store]);
|
|
177
|
+
const records = thinkingOf(env.ai) !== undefined && catalog.candidates.some((candidate) => candidate.type === "act" && candidate.asks.length > 0 && makes.has(candidate.mutation));
|
|
178
|
+
const [suggested, setSuggested] = useState(null);
|
|
179
|
+
const [busy, setBusy] = useState(true);
|
|
180
|
+
const [failed, setFailed] = useState(null);
|
|
181
|
+
useEffect(() => {
|
|
182
|
+
let live = true;
|
|
183
|
+
setBusy(true);
|
|
184
|
+
void askInline(env, "suggest", target).then((result) => {
|
|
185
|
+
if (!live)
|
|
186
|
+
return;
|
|
187
|
+
setSuggested(result);
|
|
188
|
+
setBusy(false);
|
|
189
|
+
if (result.interaction.outcome === "failed")
|
|
190
|
+
setFailed(result.interaction.failed ?? "The AI could not suggest anything here.");
|
|
191
|
+
});
|
|
192
|
+
return () => {
|
|
193
|
+
live = false;
|
|
194
|
+
};
|
|
195
|
+
// Asked once per target: the menu is drawn again as the graph moves, and the suggestion stands.
|
|
196
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
197
|
+
}, [target]);
|
|
198
|
+
const run = (work) => {
|
|
199
|
+
close();
|
|
200
|
+
void work();
|
|
201
|
+
};
|
|
202
|
+
return (_jsxs("div", { "data-testid": "inline-ai", style: { display: "grid", gap: 2 }, children: [busy ? (_jsx("p", { role: "status", "data-testid": "inline-ai-thinking", style: QUIET, children: "Thinking\u2026" })) : failed ? (_jsx("p", { role: "status", style: QUIET, children: failed })) : null, _jsxs("ul", { style: { margin: 0, padding: 0, listStyle: "none", display: "flex", flexDirection: "column", gap: 2 }, children: [(suggested?.offers ?? []).map((offer) => (_jsx("li", { children: _jsxs("button", { type: "button", "data-menu-item": `ai-offer:${offer.id}`, "data-ai-offer": offer.id, "data-ai-offer-type": offer.type, onClick: () => run(() => takeOffer(env, suggested, offer)), style: ROW, children: [offer.label, _jsxs("span", { style: { color: "var(--graview-ink-faint)" }, children: [" \u00B7 ", offer.type === "panel" ? "a panel" : offer.type === "place" ? "go there" : offer.type === "record" ? "open it" : "suggested"] })] }) }, offer.id))), fills ? (_jsx("li", { children: _jsx("button", { type: "button", "data-menu-item": "ai-fill", onClick: () => run(() => askInline(env, "fill", target, "Fill in")), style: ROW, children: "Fill in with AI" }) })) : null, records ? (_jsx("li", { children: _jsx("button", { type: "button", "data-menu-item": "ai-record", onClick: () => run(() => askInline(env, "record", target, "Add one")), style: ROW, children: "Add one with AI" }) })) : null, panels ? (_jsx("li", { children: _jsx("button", { type: "button", "data-menu-item": "ai-panel", onClick: () => run(() => askInline(env, "panel", target, "Draw a panel")), style: ROW, children: "Draw a panel" }) })) : null, _jsx("li", { children: _jsx("button", { type: "button", "data-menu-item": "ai-ask", onClick: () => {
|
|
203
|
+
const back = document.activeElement;
|
|
204
|
+
close();
|
|
205
|
+
openQuickAsk(env.desk, { target, returnTo: back instanceof HTMLElement && back !== document.body ? back : null });
|
|
206
|
+
}, style: ROW, children: "Ask about this\u2026" }) })] })] }));
|
|
207
|
+
}
|
|
208
|
+
const LINK = { display: "inline-flex", alignItems: "center", minHeight: 28, padding: "2px 10px", fontSize: "0.8125rem", borderRadius: 8 };
|
|
209
|
+
/**
|
|
210
|
+
* THE GHOST: changes the AI proposed and has not made, each in the act's
|
|
211
|
+
* own sentence and how sure the model was, with a box to keep it or leave
|
|
212
|
+
* it out. Accept takes the ones ticked as one batch; Dismiss puts it away;
|
|
213
|
+
* once taken, Undo takes the batch back.
|
|
214
|
+
*/
|
|
215
|
+
export function GhostTray({ placement = "picture" }) {
|
|
216
|
+
const { store: shown, principal, aiDesk } = useGraview();
|
|
217
|
+
const store = useLiveStore(shown, principal);
|
|
218
|
+
const { ghost: held, entries } = useAiDeskState(aiDesk);
|
|
219
|
+
const [off, setOff] = useState(new Set());
|
|
220
|
+
useEffect(() => setOff(new Set()), [held?.ghost.interaction]);
|
|
221
|
+
const tray = useRef(null);
|
|
222
|
+
const undoing = useRef(null);
|
|
223
|
+
/* Accepted, the keyboard goes to the way back: the buttons it pressed are gone. */
|
|
224
|
+
const batch = held?.batch;
|
|
225
|
+
useEffect(() => {
|
|
226
|
+
if (batch !== undefined)
|
|
227
|
+
undoing.current?.focus();
|
|
228
|
+
}, [batch]);
|
|
229
|
+
if (!held)
|
|
230
|
+
return null;
|
|
231
|
+
const { ghost } = held;
|
|
232
|
+
const entry = entries.find((one) => one.id === ghost.interaction);
|
|
233
|
+
/*
|
|
234
|
+
* PUT AWAY, THE KEYBOARD GOES BACK TO WHAT IT WAS ABOUT: the record's card
|
|
235
|
+
* or its page's heading, else the picture or the page — never <body>.
|
|
236
|
+
*/
|
|
237
|
+
const putAway = () => {
|
|
238
|
+
const id = ghost.target.on === "record" || ghost.target.on === "field" ? ghost.target.id : undefined;
|
|
239
|
+
const root = tray.current?.closest("[data-graview-face], main")?.parentElement ?? document;
|
|
240
|
+
const home = (id ? root.querySelector(`[data-graview-view="${CSS.escape(id)}"][tabindex]`) : null) ??
|
|
241
|
+
document.querySelector("[data-graview-page-title]") ??
|
|
242
|
+
tray.current?.closest("main") ??
|
|
243
|
+
document.querySelector("main");
|
|
244
|
+
if (home && !home.hasAttribute("tabindex"))
|
|
245
|
+
home.setAttribute("tabindex", "-1");
|
|
246
|
+
home?.focus({ preventScroll: true });
|
|
247
|
+
aiDesk.setGhost(null);
|
|
248
|
+
};
|
|
249
|
+
const chosen = ghost.proposals.filter((proposal) => !off.has(proposal.id)).map((proposal) => proposal.id);
|
|
250
|
+
const accept = () => {
|
|
251
|
+
const kept = acceptGhost(store, ghost, { author: principal, ids: chosen });
|
|
252
|
+
if (!kept.ok) {
|
|
253
|
+
aiDesk.setGhost({ ...held, refused: kept.refused });
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
if (entry)
|
|
257
|
+
aiDesk.record(acceptedEntry(entry, kept.accepted, kept.batch));
|
|
258
|
+
aiDesk.setGhost({ ghost, batch: kept.batch, took: kept.accepted.length, ...(held.onCard ? { onCard: true } : {}) });
|
|
259
|
+
};
|
|
260
|
+
const dismiss = () => {
|
|
261
|
+
if (entry && held.batch === undefined)
|
|
262
|
+
aiDesk.record(dismissedEntry(entry));
|
|
263
|
+
putAway();
|
|
264
|
+
};
|
|
265
|
+
const undo = () => {
|
|
266
|
+
if (held.batch === undefined)
|
|
267
|
+
return;
|
|
268
|
+
try {
|
|
269
|
+
store.undo(held.batch, { author: principal });
|
|
270
|
+
putAway();
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
aiDesk.setGhost({ ...held, refused: error instanceof Error ? error.message : String(error) });
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
return (_jsxs("section", { ref: tray, "data-testid": "ai-ghost", "data-interaction": ghost.interaction, "aria-label": "Proposed by AI", style: {
|
|
277
|
+
// Over the picture it stands in; on a page, over the window; on the quick ask's card, in its flow.
|
|
278
|
+
...(placement === "card"
|
|
279
|
+
? { position: "static" }
|
|
280
|
+
: { position: placement === "page" ? "fixed" : "absolute", insetInline: "max(12px, calc(50% - 220px))", bottom: "calc(var(--graview-foot-room, 0px) + 72px)", zIndex: layer("toast"), boxShadow: "var(--graview-lift-high)" }),
|
|
281
|
+
display: "grid",
|
|
282
|
+
gap: 8,
|
|
283
|
+
padding: 12,
|
|
284
|
+
borderRadius: 12,
|
|
285
|
+
border: "1px dashed var(--graview-accent)",
|
|
286
|
+
background: "var(--graview-float)",
|
|
287
|
+
fontSize: "0.875rem",
|
|
288
|
+
}, children: [_jsx("p", { style: { margin: 0, color: "var(--graview-ink-muted)" }, children: held.batch !== undefined ? `Done: ${held.took === 1 ? "one change" : `${held.took} changes`}, as one.` : `Proposed by AI · ${ghost.basis}` }), held.batch === undefined ? (_jsx("ul", { style: { margin: 0, padding: 0, listStyle: "none", display: "grid", gap: 4 }, children: ghost.proposals.map((proposal) => (_jsx("li", { "data-ghost-proposal": proposal.id, children: _jsxs("label", { style: { display: "flex", alignItems: "baseline", gap: 8, cursor: "pointer" }, children: [_jsx("input", { type: "checkbox", checked: !off.has(proposal.id), onChange: (event) => {
|
|
289
|
+
const next = new Set(off);
|
|
290
|
+
if (event.target.checked)
|
|
291
|
+
next.delete(proposal.id);
|
|
292
|
+
else
|
|
293
|
+
next.add(proposal.id);
|
|
294
|
+
setOff(next);
|
|
295
|
+
} }), _jsx("span", { style: { fontStyle: "italic", color: "var(--graview-ink)" }, children: proposal.said }), proposal.confidence !== undefined ? _jsxs("span", { style: { color: "var(--graview-ink-faint)" }, children: [Math.round(proposal.confidence * 100), "% sure"] }) : null] }) }, proposal.id))) })) : null, held.refused ? (_jsx("p", { role: "alert", style: { margin: 0, color: "var(--graview-warn)" }, children: held.refused })) : null, _jsx("div", { style: { display: "flex", flexWrap: "wrap", gap: 6 }, children: held.batch === undefined ? (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", "data-testid": "ghost-accept", disabled: chosen.length === 0, onClick: accept, style: LINK, children: chosen.length === ghost.proposals.length ? "Accept" : `Accept ${chosen.length} of ${ghost.proposals.length}` }), _jsx("button", { type: "button", "data-testid": "ghost-dismiss", onClick: dismiss, style: LINK, children: "Dismiss" })] })) : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", ref: undoing, "data-testid": "ghost-undo", onClick: undo, style: LINK, children: "Undo" }), _jsx("button", { type: "button", "data-testid": "ghost-close", onClick: putAway, style: LINK, children: "Close" })] })) })] }));
|
|
296
|
+
}
|
|
297
|
+
//# sourceMappingURL=inline-ai-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-ai-menu.js","sourceRoot":"","sources":["../src/inline-ai-menu.tsx"],"names":[],"mappings":"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"}
|
package/dist/kind-stop.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export interface KindStopProps {
|
|
|
11
11
|
readonly flagged?: readonly string[];
|
|
12
12
|
/** What the place is called, when the address names it differently from the kind's plural. */
|
|
13
13
|
readonly label?: string;
|
|
14
|
+
/** How many of its records stand behind the horizon: the line says "+N past" (the tenth walk). */
|
|
15
|
+
readonly retired?: number;
|
|
14
16
|
}
|
|
15
|
-
export declare function KindStop<S extends AnySchema>({ kind, members: given, flagged, label }: KindStopProps): import("react").JSX.Element;
|
|
17
|
+
export declare function KindStop<S extends AnySchema>({ kind, members: given, flagged, label, retired }: KindStopProps): import("react").JSX.Element;
|
|
16
18
|
//# sourceMappingURL=kind-stop.d.ts.map
|
package/dist/kind-stop.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kind-stop.d.ts","sourceRoot":"","sources":["../src/kind-stop.tsx"],"names":[],"mappings":"AACA,OAAO,EAAsE,KAAK,SAAS,EAAwD,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"kind-stop.d.ts","sourceRoot":"","sources":["../src/kind-stop.tsx"],"names":[],"mappings":"AACA,OAAO,EAAsE,KAAK,SAAS,EAAwD,MAAM,eAAe,CAAC;AAmCzK,OAAO,YAAY,CAAC;AA+BpB,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5E,uCAAuC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,kGAAkG;IAClG,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AA2BD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAY,EAAE,KAAK,EAAE,OAAW,EAAE,EAAE,aAAa,+BA4FtH"}
|