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.
Files changed (62) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/LICENSE +21 -0
  3. package/README.md +136 -0
  4. package/VERSION +1 -0
  5. package/package.json +63 -0
  6. package/schemas/README.md +32 -0
  7. package/schemas/site.schema.json +5 -0
  8. package/schemas/theme.schema.json +5 -0
  9. package/schemas/v0/site.schema.json +172 -0
  10. package/schemas/v0/theme.schema.json +210 -0
  11. package/scripts/build-all.ts +121 -0
  12. package/scripts/build.ts +601 -0
  13. package/scripts/bundle.ts +781 -0
  14. package/scripts/dev.ts +777 -0
  15. package/scripts/generate-checksums.sh +78 -0
  16. package/scripts/release/export-release-key.sh +28 -0
  17. package/scripts/release/release-guard-tag-version.sh +79 -0
  18. package/scripts/release/sign-release-assets.sh +123 -0
  19. package/scripts/release/upload-release-assets.sh +76 -0
  20. package/scripts/release/upload-release-provenance.sh +52 -0
  21. package/scripts/release/verify-public-key.sh +48 -0
  22. package/scripts/release/verify-signatures.sh +117 -0
  23. package/scripts/version-sync.ts +82 -0
  24. package/src/__tests__/build.test.ts +240 -0
  25. package/src/__tests__/bundle.test.ts +786 -0
  26. package/src/__tests__/cli.test.ts +706 -0
  27. package/src/__tests__/crucible.test.ts +1043 -0
  28. package/src/__tests__/engine.test.ts +157 -0
  29. package/src/__tests__/init.test.ts +450 -0
  30. package/src/__tests__/pipeline.test.ts +1087 -0
  31. package/src/__tests__/productbook.test.ts +1206 -0
  32. package/src/__tests__/runbook.test.ts +974 -0
  33. package/src/__tests__/server-registry.test.ts +1251 -0
  34. package/src/__tests__/servicebook.test.ts +1248 -0
  35. package/src/__tests__/shared.test.ts +2005 -0
  36. package/src/__tests__/styles.test.ts +14 -0
  37. package/src/__tests__/theme-schema.test.ts +47 -0
  38. package/src/__tests__/theme.test.ts +554 -0
  39. package/src/cli.ts +582 -0
  40. package/src/commands/init.ts +92 -0
  41. package/src/commands/update.ts +444 -0
  42. package/src/engine.ts +20 -0
  43. package/src/logger.ts +15 -0
  44. package/src/migrations/0000_schema_versioning.ts +67 -0
  45. package/src/migrations/0001_server_port.ts +52 -0
  46. package/src/migrations/0002_brand_logo.ts +49 -0
  47. package/src/migrations/index.ts +26 -0
  48. package/src/migrations/schema.ts +24 -0
  49. package/src/server-registry.ts +405 -0
  50. package/src/shared.ts +1239 -0
  51. package/src/site/styles.css +931 -0
  52. package/src/site/template.html +193 -0
  53. package/src/templates/crucible.ts +1163 -0
  54. package/src/templates/driver.ts +876 -0
  55. package/src/templates/handbook.ts +339 -0
  56. package/src/templates/minimal.ts +139 -0
  57. package/src/templates/pipeline.ts +966 -0
  58. package/src/templates/productbook.ts +1032 -0
  59. package/src/templates/runbook.ts +829 -0
  60. package/src/templates/schema.ts +119 -0
  61. package/src/templates/servicebook.ts +1242 -0
  62. 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>;