kitfly 0.1.2
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/CHANGELOG.md +60 -0
- package/LICENSE +21 -0
- package/README.md +136 -0
- package/VERSION +1 -0
- package/package.json +63 -0
- package/schemas/README.md +32 -0
- package/schemas/site.schema.json +5 -0
- package/schemas/theme.schema.json +5 -0
- package/schemas/v0/site.schema.json +172 -0
- package/schemas/v0/theme.schema.json +210 -0
- package/scripts/build-all.ts +121 -0
- package/scripts/build.ts +601 -0
- package/scripts/bundle.ts +781 -0
- package/scripts/dev.ts +777 -0
- package/scripts/generate-checksums.sh +78 -0
- package/scripts/release/export-release-key.sh +28 -0
- package/scripts/release/release-guard-tag-version.sh +79 -0
- package/scripts/release/sign-release-assets.sh +123 -0
- package/scripts/release/upload-release-assets.sh +76 -0
- package/scripts/release/upload-release-provenance.sh +52 -0
- package/scripts/release/verify-public-key.sh +48 -0
- package/scripts/release/verify-signatures.sh +117 -0
- package/scripts/version-sync.ts +82 -0
- package/src/__tests__/build.test.ts +240 -0
- package/src/__tests__/bundle.test.ts +786 -0
- package/src/__tests__/cli.test.ts +706 -0
- package/src/__tests__/crucible.test.ts +1043 -0
- package/src/__tests__/engine.test.ts +157 -0
- package/src/__tests__/init.test.ts +450 -0
- package/src/__tests__/pipeline.test.ts +1087 -0
- package/src/__tests__/productbook.test.ts +1206 -0
- package/src/__tests__/runbook.test.ts +974 -0
- package/src/__tests__/server-registry.test.ts +1251 -0
- package/src/__tests__/servicebook.test.ts +1248 -0
- package/src/__tests__/shared.test.ts +2005 -0
- package/src/__tests__/styles.test.ts +14 -0
- package/src/__tests__/theme-schema.test.ts +47 -0
- package/src/__tests__/theme.test.ts +554 -0
- package/src/cli.ts +582 -0
- package/src/commands/init.ts +92 -0
- package/src/commands/update.ts +444 -0
- package/src/engine.ts +20 -0
- package/src/logger.ts +15 -0
- package/src/migrations/0000_schema_versioning.ts +67 -0
- package/src/migrations/0001_server_port.ts +52 -0
- package/src/migrations/0002_brand_logo.ts +49 -0
- package/src/migrations/index.ts +26 -0
- package/src/migrations/schema.ts +24 -0
- package/src/server-registry.ts +405 -0
- package/src/shared.ts +1239 -0
- package/src/site/styles.css +931 -0
- package/src/site/template.html +193 -0
- package/src/templates/crucible.ts +1163 -0
- package/src/templates/driver.ts +876 -0
- package/src/templates/handbook.ts +339 -0
- package/src/templates/minimal.ts +139 -0
- package/src/templates/pipeline.ts +966 -0
- package/src/templates/productbook.ts +1032 -0
- package/src/templates/runbook.ts +829 -0
- package/src/templates/schema.ts +119 -0
- package/src/templates/servicebook.ts +1242 -0
- package/src/theme.ts +245 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template System Schema
|
|
3
|
+
*
|
|
4
|
+
* Defines the structure for kitfly site templates.
|
|
5
|
+
* Templates are composed: minimal → handbook/runbook/etc.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// -----------------------------------------------------------------------------
|
|
9
|
+
// Branding Configuration
|
|
10
|
+
// -----------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
export interface BrandingConfig {
|
|
13
|
+
siteName: string;
|
|
14
|
+
brandName?: string;
|
|
15
|
+
brandUrl?: string;
|
|
16
|
+
primaryColor?: string;
|
|
17
|
+
footerText?: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// -----------------------------------------------------------------------------
|
|
21
|
+
// Section Definition
|
|
22
|
+
// -----------------------------------------------------------------------------
|
|
23
|
+
|
|
24
|
+
export interface SectionDef {
|
|
25
|
+
name: string;
|
|
26
|
+
path: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
files?: string[]; // Optional starter files to create
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// -----------------------------------------------------------------------------
|
|
32
|
+
// Template Definition
|
|
33
|
+
// -----------------------------------------------------------------------------
|
|
34
|
+
|
|
35
|
+
export interface TemplateDef {
|
|
36
|
+
id: string;
|
|
37
|
+
name: string;
|
|
38
|
+
description: string;
|
|
39
|
+
version: number; // Template structure version (for upgrade tracking)
|
|
40
|
+
extends?: string; // Parent template to build upon
|
|
41
|
+
sections: SectionDef[];
|
|
42
|
+
files: TemplateFile[]; // Files to generate
|
|
43
|
+
postInit?: string[]; // Commands to run after init
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// -----------------------------------------------------------------------------
|
|
47
|
+
// Site Manifest (created in .kitfly/ for all sites)
|
|
48
|
+
// -----------------------------------------------------------------------------
|
|
49
|
+
|
|
50
|
+
export interface SiteManifest {
|
|
51
|
+
template: string;
|
|
52
|
+
templateVersion: number;
|
|
53
|
+
created: string; // ISO timestamp
|
|
54
|
+
kitflyVersion: string;
|
|
55
|
+
standalone: boolean;
|
|
56
|
+
// Optional: version of schemas used by site.yaml/theme.yaml
|
|
57
|
+
schemaVersion?: string;
|
|
58
|
+
// Optional: updated timestamp for kitfly update
|
|
59
|
+
lastUpdated?: string;
|
|
60
|
+
// Optional: history of kitfly updates applied to this site
|
|
61
|
+
updateHistory?: {
|
|
62
|
+
from: string;
|
|
63
|
+
to: string;
|
|
64
|
+
date: string;
|
|
65
|
+
}[];
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export interface TemplateFile {
|
|
69
|
+
path: string;
|
|
70
|
+
content: string | ((ctx: TemplateContext) => string);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// -----------------------------------------------------------------------------
|
|
74
|
+
// Template Context (passed to content generators)
|
|
75
|
+
// -----------------------------------------------------------------------------
|
|
76
|
+
|
|
77
|
+
export interface TemplateContext {
|
|
78
|
+
name: string; // Site/folder name
|
|
79
|
+
branding: BrandingConfig;
|
|
80
|
+
template: TemplateDef;
|
|
81
|
+
year: number;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// -----------------------------------------------------------------------------
|
|
85
|
+
// Init Options
|
|
86
|
+
// -----------------------------------------------------------------------------
|
|
87
|
+
|
|
88
|
+
export interface InitOptions {
|
|
89
|
+
name: string;
|
|
90
|
+
template: string;
|
|
91
|
+
git?: boolean;
|
|
92
|
+
prompt?: boolean;
|
|
93
|
+
standalone?: boolean; // Copy site code for self-contained operation
|
|
94
|
+
aiAssist?: boolean; // Add AI assistance instrumentation (AGENTS.md, roles)
|
|
95
|
+
branding?: Partial<BrandingConfig>;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// -----------------------------------------------------------------------------
|
|
99
|
+
// Standalone Provenance (tracks what was copied)
|
|
100
|
+
// -----------------------------------------------------------------------------
|
|
101
|
+
|
|
102
|
+
export interface StandaloneProvenance {
|
|
103
|
+
kitflyVersion: string;
|
|
104
|
+
createdAt: string;
|
|
105
|
+
updatedAt?: string;
|
|
106
|
+
template: string;
|
|
107
|
+
files: {
|
|
108
|
+
path: string;
|
|
109
|
+
sourceHash: string; // SHA256 of source content
|
|
110
|
+
localHash?: string; // SHA256 of local content (post-write)
|
|
111
|
+
modified?: boolean; // Local file differs from sourceHash
|
|
112
|
+
}[];
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// -----------------------------------------------------------------------------
|
|
116
|
+
// Template Registry
|
|
117
|
+
// -----------------------------------------------------------------------------
|
|
118
|
+
|
|
119
|
+
export type TemplateRegistry = Map<string, TemplateDef>;
|