Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .claude/scheduled_tasks.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"sessionId":"f1aff2d6-c2fa-41a1-9596-0670b1e35bda","pid":6435,"acquiredAt":1775737052293}
16 changes: 16 additions & 0 deletions docs/docs/api/appkit/Interface.PluginManifest.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,22 @@ Omit.onSetupMessage

***

### postScaffold?

```ts
optional postScaffold: PostScaffoldStep[];
```

Ordered list of post-scaffolding instructions shown to the user after project initialization. Array position determines display order.

#### Inherited from

```ts
Omit.postScaffold
```

***

### repository?

```ts
Expand Down
8 changes: 8 additions & 0 deletions docs/docs/api/appkit/Interface.ResourceFieldEntry.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,14 @@ Human-readable description for this field

***

### discovery?

```ts
optional discovery: DiscoveryDescriptor;
```

***

### env?

```ts
Expand Down
28 changes: 25 additions & 3 deletions docs/static/appkit-ui/styles.gen.css
Original file line number Diff line number Diff line change
Expand Up @@ -831,9 +831,6 @@
.max-w-\[calc\(100\%-2rem\)\] {
max-width: calc(100% - 2rem);
}
.max-w-full {
max-width: 100%;
}
.max-w-max {
max-width: max-content;
}
Expand Down Expand Up @@ -4514,6 +4511,11 @@
width: calc(var(--spacing) * 5);
}
}
.\[\&_\[data-slot\=scroll-area-viewport\]\>div\]\:\!block {
& [data-slot=scroll-area-viewport]>div {
display: block !important;
}
}
.\[\&_a\]\:underline {
& a {
text-decoration-line: underline;
Expand Down Expand Up @@ -4637,11 +4639,26 @@
color: var(--muted-foreground);
}
}
.\[\&_table\]\:block {
& table {
display: block;
}
}
.\[\&_table\]\:max-w-full {
& table {
max-width: 100%;
}
}
.\[\&_table\]\:border-collapse {
& table {
border-collapse: collapse;
}
}
.\[\&_table\]\:overflow-x-auto {
& table {
overflow-x: auto;
}
}
.\[\&_table\]\:text-xs {
& table {
font-size: var(--text-xs);
Expand Down Expand Up @@ -4851,6 +4868,11 @@
width: 100%;
}
}
.\[\&\>\*\]\:min-w-0 {
&>* {
min-width: calc(var(--spacing) * 0);
}
}
.\[\&\>\*\]\:focus-visible\:relative {
&>* {
&:focus-visible {
Expand Down
65 changes: 65 additions & 0 deletions docs/static/schemas/plugin-manifest.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,13 @@
"type": "boolean",
"default": false,
"description": "When true, this plugin is excluded from the template plugins manifest (appkit.plugins.json) during sync."
},
"postScaffold": {
"type": "array",
"items": {
"$ref": "#/$defs/postScaffoldStep"
},
"description": "Ordered list of post-scaffolding instructions shown to the user after project initialization. Array position determines display order."
}
},
"additionalProperties": false,
Expand Down Expand Up @@ -220,6 +227,10 @@
"type": "string",
"pattern": "^[a-z_]+:[a-zA-Z]+$",
"description": "Named resolver prefixed by resource type (e.g., 'postgres:host'). The CLI resolves this value during the init prompt flow."
},
"discovery": {
"$ref": "#/$defs/discoveryDescriptor",
"description": "How the CLI discovers values for this field via a Databricks CLI command."
}
},
"additionalProperties": false
Expand Down Expand Up @@ -478,6 +489,60 @@
"type": "boolean"
}
}
},
"discoveryDescriptor": {
"type": "object",
"description": "Describes how the CLI discovers values for a resource field via a Databricks CLI command.",
"required": ["cliCommand", "selectField"],
"properties": {
"cliCommand": {
"type": "string",
"description": "Databricks CLI command that lists resources. Must include <PROFILE> placeholder.",
"examples": [
"databricks warehouses list --profile <PROFILE> --output json"
]
},
"selectField": {
"type": "string",
"description": "jq-style path to the field used as the selected value (e.g., '.id', '.name').",
"examples": [".id", ".name", ".catalog_name"]
},
"displayField": {
"type": "string",
"description": "jq-style path to the field shown to the user in selection UI. Defaults to selectField if omitted.",
"examples": [".name", ".display_name"]
},
"dependsOn": {
"type": "string",
"description": "Name of a sibling field within the same resource that must be resolved first. Used to express ordering dependencies between resource fields.",
"examples": ["branch", "catalog"]
},
"shortcut": {
"type": "string",
"description": "Single-value fast-path command that returns exactly one value, skipping interactive selection.",
"examples": [
"databricks warehouses get <ID> --profile <PROFILE> --output json"
]
}
},
"additionalProperties": false
},
"postScaffoldStep": {
"type": "object",
"description": "A post-scaffolding instruction shown to the user after project initialization.",
"required": ["instruction"],
"properties": {
"instruction": {
"type": "string",
"description": "Human-readable instruction for the user to follow after scaffolding."
},
"required": {
"type": "boolean",
"default": true,
"description": "Whether this step is required for the plugin to function correctly."
}
},
"additionalProperties": false
}
}
}
Loading