New github.rs module with three commands: - github_list_repos: lists user's repos via GitHub API (paginated) - github_create_repo: creates a new repo with auto_init - clone_repo: git clone with HTTPS+token auth, configures remote Also extends Settings with github_token field (Rust + TypeScript), and adds GithubRepo type to shared types. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
65 lines
1.7 KiB
TypeScript
65 lines
1.7 KiB
TypeScript
export interface VaultEntry {
|
|
path: string
|
|
filename: string
|
|
title: string
|
|
isA: string | null
|
|
aliases: string[]
|
|
belongsTo: string[]
|
|
relatedTo: string[]
|
|
status: string | null
|
|
owner: string | null
|
|
cadence: string | null
|
|
archived: boolean
|
|
trashed: boolean
|
|
trashedAt: number | null
|
|
modifiedAt: number | null
|
|
createdAt: number | null
|
|
fileSize: number
|
|
snippet: string
|
|
/** Generic relationship fields: any frontmatter key whose value contains wikilinks. */
|
|
relationships: Record<string, string[]>
|
|
/** Phosphor icon name (kebab-case) for Type entries, e.g. "cooking-pot" */
|
|
icon: string | null
|
|
/** Accent color key for Type entries: "red" | "purple" | "blue" | "green" | "yellow" | "orange" */
|
|
color: string | null
|
|
/** Display order for Type entries in sidebar (lower = higher). null = use default order. */
|
|
order: number | null
|
|
}
|
|
|
|
export interface GitCommit {
|
|
hash: string
|
|
shortHash: string
|
|
message: string
|
|
author: string
|
|
date: number // unix timestamp
|
|
}
|
|
|
|
export interface ModifiedFile {
|
|
path: string
|
|
relativePath: string
|
|
status: 'modified' | 'added' | 'deleted' | 'untracked' | 'renamed'
|
|
}
|
|
|
|
export interface Settings {
|
|
anthropic_key: string | null
|
|
openai_key: string | null
|
|
google_key: string | null
|
|
github_token: string | null
|
|
}
|
|
|
|
export interface GithubRepo {
|
|
name: string
|
|
full_name: string
|
|
description: string | null
|
|
private: boolean
|
|
clone_url: string
|
|
html_url: string
|
|
updated_at: string | null
|
|
}
|
|
|
|
export type SidebarSelection =
|
|
| { kind: 'filter'; filter: 'all' | 'favorites' | 'archived' | 'trash' }
|
|
| { kind: 'sectionGroup'; type: string }
|
|
| { kind: 'entity'; entry: VaultEntry }
|
|
| { kind: 'topic'; entry: VaultEntry }
|