@gmickel/gno 1.12.4 → 1.13.0
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 +57 -30
- package/assets/skill/SKILL.md +5 -0
- package/assets/skill/cli-reference.md +16 -6
- package/assets/skill/mcp-reference.md +22 -3
- package/package.json +2 -1
- package/src/app/constants.ts +43 -10
- package/src/app/index-name.ts +127 -0
- package/src/cli/commands/doctor-activation.ts +151 -0
- package/src/cli/commands/doctor.ts +41 -16
- package/src/cli/commands/get.ts +18 -0
- package/src/cli/commands/mcp/atomic-config-write.ts +118 -0
- package/src/cli/commands/mcp/config-discovery.ts +42 -0
- package/src/cli/commands/mcp/config-editors.ts +432 -0
- package/src/cli/commands/mcp/config.ts +63 -160
- package/src/cli/commands/mcp/install.ts +75 -37
- package/src/cli/commands/mcp/paths.ts +141 -136
- package/src/cli/commands/mcp/server-entry.ts +66 -0
- package/src/cli/commands/mcp/status.ts +189 -57
- package/src/cli/commands/mcp/target-display.ts +30 -0
- package/src/cli/commands/mcp/uninstall.ts +29 -31
- package/src/cli/commands/mcp/yaml-config-editor.ts +257 -0
- package/src/cli/commands/mcp/yaml-layout-scanner.ts +447 -0
- package/src/cli/commands/multi-get.ts +31 -6
- package/src/cli/commands/status.ts +107 -11
- package/src/cli/program.ts +66 -20
- package/src/core/activation-connector-health.ts +19 -0
- package/src/core/activation-probe-plan.ts +321 -0
- package/src/core/activation-probe.ts +138 -0
- package/src/core/activation-receipt-store.ts +39 -0
- package/src/core/activation-status.ts +513 -0
- package/src/core/activation-verifier.ts +416 -0
- package/src/core/connector-environment.ts +68 -0
- package/src/core/connector-policy.ts +233 -0
- package/src/core/connector-verification-target.ts +150 -0
- package/src/core/connector-verifier.ts +497 -0
- package/src/core/indexed-reference.ts +33 -8
- package/src/core/runtime-entrypoint.ts +24 -0
- package/src/mcp/activation-verification-mode.ts +4 -0
- package/src/mcp/server.ts +9 -2
- package/src/sdk/client.ts +7 -0
- package/src/sdk/types.ts +1 -0
- package/src/serve/activation-health.ts +91 -0
- package/src/serve/background-runtime.ts +11 -1
- package/src/serve/connectors.ts +164 -19
- package/src/serve/public/components/BootstrapStatus.tsx +94 -1
- package/src/serve/public/components/FirstRunWizard.tsx +13 -51
- package/src/serve/public/components/HealthCenter.tsx +8 -2
- package/src/serve/public/globals.built.css +1 -1
- package/src/serve/public/pages/Connectors.tsx +216 -55
- package/src/serve/public/pages/Dashboard.tsx +1 -0
- package/src/serve/routes/api.ts +152 -8
- package/src/serve/server.ts +44 -9
- package/src/serve/status-model.ts +4 -0
- package/src/serve/status.ts +79 -35
- package/src/store/activation-receipts.ts +390 -0
- package/src/store/index.ts +8 -0
- package/src/store/migrations/012-activation-receipts.ts +38 -0
- package/src/store/migrations/013-fts-sync-marker.ts +39 -0
- package/src/store/migrations/index.ts +4 -0
- package/src/store/sqlite/adapter.ts +313 -53
- package/src/store/types.ts +118 -0
|
@@ -204,10 +204,8 @@ export function FirstRunWizard({
|
|
|
204
204
|
onboarding,
|
|
205
205
|
onAddCollection,
|
|
206
206
|
onDownloadModels,
|
|
207
|
-
onEmbed,
|
|
208
207
|
onSync,
|
|
209
208
|
onSyncComplete,
|
|
210
|
-
embedding = false,
|
|
211
209
|
syncJobId = null,
|
|
212
210
|
syncing = false,
|
|
213
211
|
}: FirstRunWizardProps) {
|
|
@@ -238,27 +236,19 @@ export function FirstRunWizard({
|
|
|
238
236
|
: null;
|
|
239
237
|
const progressValue = getStepProgress(onboarding);
|
|
240
238
|
const isShowingRecommended = activeStep?.id === recommendedStepId;
|
|
241
|
-
const indexingNeedsEmbeddings =
|
|
242
|
-
onboarding.stage === "indexing" &&
|
|
243
|
-
onboarding.detail.toLowerCase().includes("embedding");
|
|
244
|
-
|
|
245
239
|
const runRecommendedAction = () => {
|
|
246
240
|
if (!activeStep) {
|
|
247
241
|
return;
|
|
248
242
|
}
|
|
249
|
-
if (activeStep.
|
|
243
|
+
if (activeStep.action === "add-collection") {
|
|
250
244
|
onAddCollection();
|
|
251
245
|
return;
|
|
252
246
|
}
|
|
253
|
-
if (activeStep.
|
|
247
|
+
if (activeStep.action === "download-models") {
|
|
254
248
|
onDownloadModels();
|
|
255
249
|
return;
|
|
256
250
|
}
|
|
257
|
-
if (activeStep.
|
|
258
|
-
onEmbed();
|
|
259
|
-
return;
|
|
260
|
-
}
|
|
261
|
-
if (activeStep.id === "indexing" && !syncing) {
|
|
251
|
+
if (activeStep.action === "sync" && !syncing) {
|
|
262
252
|
onSync();
|
|
263
253
|
}
|
|
264
254
|
};
|
|
@@ -403,7 +393,7 @@ export function FirstRunWizard({
|
|
|
403
393
|
<WizardPanel>
|
|
404
394
|
<WizardPanelHeader
|
|
405
395
|
badge={<Badge variant="outline">Safe to rerun</Badge>}
|
|
406
|
-
title="
|
|
396
|
+
title="Prove lexical retrieval"
|
|
407
397
|
>
|
|
408
398
|
<p className="max-w-2xl text-muted-foreground text-sm leading-6">
|
|
409
399
|
{activeStep.detail}
|
|
@@ -419,31 +409,13 @@ export function FirstRunWizard({
|
|
|
419
409
|
|
|
420
410
|
<WizardActionPanel
|
|
421
411
|
action={
|
|
422
|
-
<Button
|
|
423
|
-
disabled={indexingNeedsEmbeddings ? embedding : syncing}
|
|
424
|
-
onClick={indexingNeedsEmbeddings ? onEmbed : onSync}
|
|
425
|
-
size="lg"
|
|
426
|
-
>
|
|
412
|
+
<Button disabled={syncing} onClick={onSync} size="lg">
|
|
427
413
|
<RefreshCwIcon className="mr-2 size-4" />
|
|
428
|
-
{
|
|
429
|
-
? embedding
|
|
430
|
-
? "Embedding..."
|
|
431
|
-
: "Finish embeddings"
|
|
432
|
-
: syncing
|
|
433
|
-
? "Syncing..."
|
|
434
|
-
: "Run first sync"}
|
|
414
|
+
{syncing ? "Syncing..." : "Run first sync"}
|
|
435
415
|
</Button>
|
|
436
416
|
}
|
|
437
|
-
body=
|
|
438
|
-
|
|
439
|
-
? "Your files are indexed. One more embedding pass will unlock semantic search and local answers."
|
|
440
|
-
: "Good last step before you move into normal use."
|
|
441
|
-
}
|
|
442
|
-
title={
|
|
443
|
-
indexingNeedsEmbeddings
|
|
444
|
-
? "Finish semantic indexing"
|
|
445
|
-
: "Index the current workspace"
|
|
446
|
-
}
|
|
417
|
+
body="Builds the local lexical index and proves that this exact folder can return corpus-derived evidence."
|
|
418
|
+
title="Index and verify the current workspace"
|
|
447
419
|
/>
|
|
448
420
|
|
|
449
421
|
{syncJobId && (
|
|
@@ -451,7 +423,7 @@ export function FirstRunWizard({
|
|
|
451
423
|
<WizardPanelHeader title="Sync progress">
|
|
452
424
|
<p className="max-w-2xl text-muted-foreground text-sm leading-6">
|
|
453
425
|
Your first indexing run is in progress. The wizard will advance
|
|
454
|
-
once the job finishes and
|
|
426
|
+
once the job finishes and lexical retrieval is proven.
|
|
455
427
|
</p>
|
|
456
428
|
</WizardPanelHeader>
|
|
457
429
|
<div style={{ padding: "24px 28px" }}>
|
|
@@ -568,24 +540,14 @@ export function FirstRunWizard({
|
|
|
568
540
|
</div>
|
|
569
541
|
{activeStep && activeStep.id !== "preset" && (
|
|
570
542
|
<Button
|
|
571
|
-
disabled={
|
|
572
|
-
activeStep.id === "indexing"
|
|
573
|
-
? indexingNeedsEmbeddings
|
|
574
|
-
? embedding
|
|
575
|
-
: syncing
|
|
576
|
-
: false
|
|
577
|
-
}
|
|
543
|
+
disabled={activeStep.action === "sync" ? syncing : false}
|
|
578
544
|
onClick={runRecommendedAction}
|
|
579
545
|
size="sm"
|
|
580
546
|
variant={isShowingRecommended ? "default" : "outline"}
|
|
581
547
|
>
|
|
582
|
-
{activeStep.
|
|
583
|
-
?
|
|
584
|
-
|
|
585
|
-
: "Finish embeddings"
|
|
586
|
-
: activeStep.id === "indexing" && syncing
|
|
587
|
-
? "Syncing..."
|
|
588
|
-
: getStepActionLabel(activeStep.id)}
|
|
548
|
+
{activeStep.action === "sync" && syncing
|
|
549
|
+
? "Syncing..."
|
|
550
|
+
: getStepActionLabel(activeStep.id)}
|
|
589
551
|
</Button>
|
|
590
552
|
)}
|
|
591
553
|
</div>
|
|
@@ -66,7 +66,13 @@ export function HealthCenter({
|
|
|
66
66
|
<p className="max-w-3xl text-muted-foreground">{health.summary}</p>
|
|
67
67
|
</div>
|
|
68
68
|
<Badge
|
|
69
|
-
className=
|
|
69
|
+
className={
|
|
70
|
+
health.state === "healthy"
|
|
71
|
+
? "border-emerald-500/25 bg-emerald-500/10 text-emerald-500"
|
|
72
|
+
: health.state === "setup-required"
|
|
73
|
+
? "border-destructive/25 bg-destructive/10 text-destructive"
|
|
74
|
+
: "border-amber-500/25 bg-amber-500/10 text-amber-500"
|
|
75
|
+
}
|
|
70
76
|
variant="outline"
|
|
71
77
|
>
|
|
72
78
|
{health.state === "healthy"
|
|
@@ -77,7 +83,7 @@ export function HealthCenter({
|
|
|
77
83
|
</Badge>
|
|
78
84
|
</div>
|
|
79
85
|
|
|
80
|
-
<div className="grid gap-4 md:grid-cols-2 xl:grid-cols-
|
|
86
|
+
<div className="grid gap-4 md:grid-cols-2 xl:grid-cols-3">
|
|
81
87
|
{health.checks.map((check) => {
|
|
82
88
|
const isBusy = busyAction === check.actionKind;
|
|
83
89
|
|