@gmickel/gno 2.6.0 → 2.7.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.
- package/README.md +25 -30
- package/assets/skill/SKILL.md +5 -3
- package/assets/skill/cli-reference.md +9 -2
- package/assets/skill/mcp-reference.md +2 -1
- package/assets/spa-production.json.gz +0 -0
- package/browser-extension/artifacts/{gno-browser-clipper-v2.6.0.zip → gno-browser-clipper-v2.7.1.zip} +0 -0
- package/browser-extension/artifacts/gno-browser-clipper-v2.7.1.zip.sha256 +1 -0
- package/browser-extension/dist/manifest.json +1 -1
- package/package.json +2 -1
- package/spec/cli.md +109 -18
- package/spec/mcp.md +36 -2
- package/spec/output-schemas/ask.schema.json +1 -1
- package/spec/output-schemas/capture-receipt.schema.json +1 -1
- package/spec/output-schemas/collection-list.schema.json +2 -2
- package/spec/output-schemas/doctor.schema.json +88 -0
- package/spec/output-schemas/error.schema.json +11 -2
- package/spec/output-schemas/get.schema.json +1 -1
- package/spec/output-schemas/mcp-capture-result.schema.json +1 -2
- package/spec/output-schemas/memory-remember.schema.json +2 -2
- package/spec/output-schemas/multi-get.schema.json +4 -1
- package/spec/output-schemas/peek.schema.json +2 -9
- package/spec/output-schemas/resident-status.schema.json +22 -0
- package/spec/output-schemas/search-result.schema.json +1 -1
- package/spec/output-schemas/search-results.schema.json +1 -1
- package/spec/output-schemas/status.schema.json +110 -16
- package/src/cli/commands/ask.ts +31 -12
- package/src/cli/commands/doctor.ts +54 -20
- package/src/cli/commands/embed.ts +41 -3
- package/src/cli/commands/ls.ts +6 -1
- package/src/cli/commands/query.ts +5 -0
- package/src/cli/commands/status.ts +63 -5
- package/src/cli/commands/vec.ts +54 -0
- package/src/cli/detach.ts +29 -1
- package/src/cli/errors.ts +13 -9
- package/src/cli/program.ts +53 -1
- package/src/core/capture-sync.ts +9 -2
- package/src/core/host-paths.ts +49 -0
- package/src/core/memory-remember.ts +4 -3
- package/src/core/request-receipts.ts +63 -9
- package/src/core/shutdown-budget.ts +6 -0
- package/src/core/vector-partition-status.ts +52 -0
- package/src/core/windows-private-path.ts +136 -1
- package/src/embed/backlog.ts +145 -27
- package/src/embed/fingerprint.ts +6 -3
- package/src/embed/retry.ts +66 -27
- package/src/embed/variant-backlog.ts +48 -18
- package/src/embed/variant-retry.ts +31 -22
- package/src/index.ts +21 -2
- package/src/llm/inference-scope.ts +18 -0
- package/src/llm/native-worker/dispatcher.ts +2 -0
- package/src/llm/native-worker/embedding-identity.ts +42 -0
- package/src/llm/native-worker/protocol.ts +1 -0
- package/src/llm/types.ts +3 -0
- package/src/mcp/context.ts +9 -0
- package/src/mcp/resources/index.ts +6 -5
- package/src/mcp/tool-descriptions-core.ts +1 -1
- package/src/mcp/tools/capture.ts +1 -3
- package/src/mcp/tools/index.ts +11 -4
- package/src/mcp/tools/memory-remember.ts +1 -1
- package/src/mcp/tools/status.ts +23 -6
- package/src/pipeline/hybrid.ts +37 -7
- package/src/pipeline/vsearch.ts +14 -2
- package/src/serve/embed-scheduler.ts +133 -19
- package/src/serve/host-path-redaction.ts +116 -0
- package/src/serve/public/components/BootstrapStatus.tsx +5 -3
- package/src/serve/public/components/CaptureModal.tsx +1 -1
- package/src/serve/public/components/CollectionModelDialog.tsx +16 -13
- package/src/serve/public/components/CollectionsEmptyState.tsx +5 -3
- package/src/serve/public/components/FirstRunWizard.tsx +4 -2
- package/src/serve/public/components/sessions/SessionSearch.tsx +2 -2
- package/src/serve/public/components/sessions/SourcesPanel.tsx +77 -60
- package/src/serve/public/globals.built.css +1 -1
- package/src/serve/public/hooks/use-api.ts +17 -2
- package/src/serve/public/lib/request-intent.ts +8 -0
- package/src/serve/public/{components/sessions → lib}/snippet.tsx +2 -3
- package/src/serve/public/pages/Collections.tsx +16 -13
- package/src/serve/public/pages/Connectors.tsx +7 -4
- package/src/serve/public/pages/Dashboard.tsx +16 -11
- package/src/serve/public/pages/DocView.tsx +10 -5
- package/src/serve/public/pages/DocumentEditor.tsx +91 -14
- package/src/serve/public/pages/Search.tsx +1 -41
- package/src/serve/resident-runtime.ts +33 -1
- package/src/serve/resident-status.ts +13 -1
- package/src/serve/routes/sessions.ts +61 -5
- package/src/serve/server.ts +15 -12
- package/src/serve/status-model.ts +26 -6
- package/src/serve/status.ts +4 -7
- package/src/serve/watch-reconciliation-shared.ts +3 -0
- package/src/serve/watch-service-events.ts +3 -2
- package/src/serve/watch-service-run-flush.ts +35 -2
- package/src/serve/watch-service.ts +5 -0
- package/src/store/migrations/031-runtime-independent-vectors.ts +29 -0
- package/src/store/migrations/032-vector-runtime-callers.ts +17 -0
- package/src/store/migrations/index.ts +4 -0
- package/src/store/sqlite/adapter.ts +24 -3
- package/src/store/sqlite/change-journal-store.ts +1 -1
- package/src/store/sqlite/legacy-vector-ownership.ts +2 -1
- package/src/store/types.ts +11 -1
- package/src/store/vector/lazy.ts +46 -43
- package/src/store/vector/runtime-compat.ts +651 -0
- package/src/store/vector/sqlite-vec.ts +20 -2
- package/src/store/vector/status.ts +276 -35
- package/src/store/vector/types.ts +2 -0
- package/src/store/vector/variant-search.ts +71 -23
- package/src/store/vector/variants.ts +49 -14
- package/browser-extension/artifacts/gno-browser-clipper-v2.6.0.zip.sha256 +0 -1
|
@@ -394,8 +394,12 @@ export function SourcesPanel({
|
|
|
394
394
|
const [notice, setNotice] = useState<{ text: string } | null>(null);
|
|
395
395
|
const noticeRef = useRef<HTMLParagraphElement>(null);
|
|
396
396
|
useFocusOnChange(notice, noticeRef);
|
|
397
|
+
// Bumped when the Discover button's run finishes: focus moves to its outcome.
|
|
398
|
+
const [discoveredCount, setDiscoveredCount] = useState(0);
|
|
399
|
+
const discoveryRef = useRef<HTMLDivElement>(null);
|
|
400
|
+
useFocusOnChange(discoveredCount, discoveryRef);
|
|
397
401
|
|
|
398
|
-
const discover = async () => {
|
|
402
|
+
const discover = async (focusOutcome = false) => {
|
|
399
403
|
setDiscovering(true);
|
|
400
404
|
const result = await sessionsApi<SessionsDiscovery>(
|
|
401
405
|
"/api/sessions/discover"
|
|
@@ -403,6 +407,7 @@ export function SourcesPanel({
|
|
|
403
407
|
setDiscovering(false);
|
|
404
408
|
setDiscoverError(result.error);
|
|
405
409
|
setDiscovery(result.data);
|
|
410
|
+
if (focusOutcome) setDiscoveredCount((count) => count + 1);
|
|
406
411
|
};
|
|
407
412
|
|
|
408
413
|
const registered = async (sourceId: string, collection: string) => {
|
|
@@ -425,7 +430,7 @@ export function SourcesPanel({
|
|
|
425
430
|
{localClient && (
|
|
426
431
|
<Button
|
|
427
432
|
disabled={discovering}
|
|
428
|
-
onClick={() => void discover()}
|
|
433
|
+
onClick={() => void discover(true)}
|
|
429
434
|
size="sm"
|
|
430
435
|
variant="outline"
|
|
431
436
|
>
|
|
@@ -473,67 +478,79 @@ export function SourcesPanel({
|
|
|
473
478
|
</p>
|
|
474
479
|
)}
|
|
475
480
|
|
|
476
|
-
{discoverError && (
|
|
477
|
-
<
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
</p>
|
|
488
|
-
{discovery.candidates.length === 0 && (
|
|
489
|
-
<p className="text-muted-foreground text-sm">
|
|
490
|
-
No supported session stores were found.
|
|
481
|
+
{(discoverError || discovery) && (
|
|
482
|
+
<div
|
|
483
|
+
aria-label="Discovery results"
|
|
484
|
+
className={`space-y-3 ${FOCUS_RING}`}
|
|
485
|
+
ref={discoveryRef}
|
|
486
|
+
role="region"
|
|
487
|
+
tabIndex={-1}
|
|
488
|
+
>
|
|
489
|
+
{discoverError && (
|
|
490
|
+
<p className="break-words text-destructive text-sm" role="alert">
|
|
491
|
+
{discoverError}
|
|
491
492
|
</p>
|
|
492
493
|
)}
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
<
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
<span className="min-w-0 break-all font-mono text-xs">
|
|
504
|
-
{candidate.path}
|
|
505
|
-
</span>
|
|
506
|
-
</div>
|
|
507
|
-
<p className="text-muted-foreground text-xs">
|
|
508
|
-
{candidate.units}
|
|
509
|
-
{candidate.truncated ? "+" : ""} units ·{" "}
|
|
510
|
-
{formatBytes(candidate.bytes)}
|
|
511
|
-
{candidate.formatVersions.length > 0 &&
|
|
512
|
-
` · format ${candidate.formatVersions.join(", ")}`}
|
|
494
|
+
{discovery && (
|
|
495
|
+
<div className="space-y-3 rounded-lg border border-dashed border-border/70 p-4">
|
|
496
|
+
<h3 className="font-medium">Discovered on this machine</h3>
|
|
497
|
+
<p className="text-muted-foreground text-xs">
|
|
498
|
+
Preview only: discovery reads nothing into the archive. Register
|
|
499
|
+
a source to permit manual imports from it.
|
|
500
|
+
</p>
|
|
501
|
+
{discovery.candidates.length === 0 && (
|
|
502
|
+
<p className="text-muted-foreground text-sm">
|
|
503
|
+
No supported session stores were found.
|
|
513
504
|
</p>
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
505
|
+
)}
|
|
506
|
+
<ul className="space-y-4">
|
|
507
|
+
{discovery.candidates.map((candidate) => (
|
|
508
|
+
<li
|
|
509
|
+
className="min-w-0 space-y-2"
|
|
510
|
+
key={`${candidate.harness}:${candidate.path}`}
|
|
511
|
+
>
|
|
512
|
+
<div className="flex flex-wrap items-center gap-2">
|
|
513
|
+
<Badge variant="secondary">
|
|
514
|
+
{SESSION_HARNESS_LABELS[candidate.harness]}
|
|
515
|
+
</Badge>
|
|
516
|
+
<span className="min-w-0 break-all font-mono text-xs">
|
|
517
|
+
{candidate.path}
|
|
518
|
+
</span>
|
|
519
|
+
</div>
|
|
520
|
+
<p className="text-muted-foreground text-xs">
|
|
521
|
+
{candidate.units}
|
|
522
|
+
{candidate.truncated ? "+" : ""} units ·{" "}
|
|
523
|
+
{formatBytes(candidate.bytes)}
|
|
524
|
+
{candidate.formatVersions.length > 0 &&
|
|
525
|
+
` · format ${candidate.formatVersions.join(", ")}`}
|
|
526
|
+
</p>
|
|
527
|
+
{candidate.registeredAs ? (
|
|
528
|
+
<p className="text-sm">
|
|
529
|
+
Registered as{" "}
|
|
530
|
+
<span className="font-mono">
|
|
531
|
+
{candidate.registeredAs}
|
|
532
|
+
</span>
|
|
533
|
+
</p>
|
|
534
|
+
) : (
|
|
535
|
+
<RegisterForm
|
|
536
|
+
candidate={candidate}
|
|
537
|
+
archiveCollections={archiveCollections}
|
|
538
|
+
onRegistered={registered}
|
|
539
|
+
/>
|
|
540
|
+
)}
|
|
541
|
+
</li>
|
|
542
|
+
))}
|
|
543
|
+
</ul>
|
|
544
|
+
{discovery.warnings.map((warning) => (
|
|
545
|
+
<p
|
|
546
|
+
className="text-amber-800 text-xs dark:text-amber-200"
|
|
547
|
+
key={warning}
|
|
548
|
+
>
|
|
549
|
+
{warning}
|
|
550
|
+
</p>
|
|
551
|
+
))}
|
|
552
|
+
</div>
|
|
553
|
+
)}
|
|
537
554
|
</div>
|
|
538
555
|
)}
|
|
539
556
|
</section>
|