prelude-context 1.0.0 → 1.2.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.
Files changed (39) hide show
  1. package/README.md +46 -9
  2. package/dist/bin/prelude.js +9 -0
  3. package/dist/bin/prelude.js.map +1 -1
  4. package/dist/src/commands/decision.d.ts.map +1 -1
  5. package/dist/src/commands/decision.js +4 -1
  6. package/dist/src/commands/decision.js.map +1 -1
  7. package/dist/src/commands/export.d.ts.map +1 -1
  8. package/dist/src/commands/export.js +4 -1
  9. package/dist/src/commands/export.js.map +1 -1
  10. package/dist/src/commands/init.d.ts.map +1 -1
  11. package/dist/src/commands/init.js +8 -1
  12. package/dist/src/commands/init.js.map +1 -1
  13. package/dist/src/commands/share.d.ts.map +1 -1
  14. package/dist/src/commands/share.js +4 -1
  15. package/dist/src/commands/share.js.map +1 -1
  16. package/dist/src/commands/update.d.ts +11 -0
  17. package/dist/src/commands/update.d.ts.map +1 -0
  18. package/dist/src/commands/update.js +186 -0
  19. package/dist/src/commands/update.js.map +1 -0
  20. package/dist/src/commands/watch.d.ts.map +1 -1
  21. package/dist/src/commands/watch.js +4 -1
  22. package/dist/src/commands/watch.js.map +1 -1
  23. package/dist/src/core/merger.d.ts +48 -0
  24. package/dist/src/core/merger.d.ts.map +1 -0
  25. package/dist/src/core/merger.js +221 -0
  26. package/dist/src/core/merger.js.map +1 -0
  27. package/dist/src/core/state-manager.d.ts +62 -0
  28. package/dist/src/core/state-manager.d.ts.map +1 -0
  29. package/dist/src/core/state-manager.js +156 -0
  30. package/dist/src/core/state-manager.js.map +1 -0
  31. package/dist/src/runtime/context.d.ts +3 -0
  32. package/dist/src/runtime/context.d.ts.map +1 -0
  33. package/dist/src/runtime/context.js +17 -0
  34. package/dist/src/runtime/context.js.map +1 -0
  35. package/dist/src/schema/state.d.ts +157 -0
  36. package/dist/src/schema/state.d.ts.map +1 -0
  37. package/dist/src/schema/state.js +49 -0
  38. package/dist/src/schema/state.js.map +1 -0
  39. package/package.json +11 -12
@@ -0,0 +1,49 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Tracks which fields are inferred vs manually edited
4
+ * Stored in .context/.prelude/state.json
5
+ */
6
+ export const FieldStateSchema = z.object({
7
+ value: z.any(), // The actual value
8
+ source: z.enum(['inferred', 'manual', 'merged']),
9
+ lastInferred: z.string().datetime().optional(), // When it was last inferred
10
+ lastModified: z.string().datetime().optional(), // When user last edited
11
+ inferredHash: z.string().optional(), // Hash of last inferred value
12
+ });
13
+ export const FileStateSchema = z.object({
14
+ file: z.string(), // e.g., "project.json"
15
+ lastUpdated: z.string().datetime(),
16
+ fields: z.record(z.string(), FieldStateSchema), // field path -> state
17
+ });
18
+ export const PreludeStateSchema = z.object({
19
+ version: z.string().default('1.0.0'),
20
+ initialized: z.string().datetime(),
21
+ lastUpdate: z.string().datetime(),
22
+ files: z.array(FileStateSchema),
23
+ });
24
+ /**
25
+ * Helper to create initial state
26
+ */
27
+ export function createInitialState() {
28
+ const now = new Date().toISOString();
29
+ return {
30
+ version: '1.0.0',
31
+ initialized: now,
32
+ lastUpdate: now,
33
+ files: [],
34
+ };
35
+ }
36
+ /**
37
+ * Helper to track a field
38
+ */
39
+ export function trackField(value, source, inferredHash) {
40
+ const now = new Date().toISOString();
41
+ return {
42
+ value,
43
+ source,
44
+ lastInferred: source === 'inferred' ? now : undefined,
45
+ lastModified: source === 'manual' ? now : undefined,
46
+ inferredHash,
47
+ };
48
+ }
49
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/schema/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,mBAAmB;IACnC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,4BAA4B;IAC5E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,wBAAwB;IACxE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,8BAA8B;CACpE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,uBAAuB;IACzC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,EAAE,sBAAsB;CACvE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;CAChC,CAAC,CAAC;AAMH;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,GAAG;QAChB,UAAU,EAAE,GAAG;QACf,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,KAAU,EACV,MAAwC,EACxC,YAAqB;IAErB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO;QACL,KAAK;QACL,MAAM;QACN,YAAY,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;QACrD,YAAY,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;QACnD,YAAY;KACb,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "prelude-context",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "The open standard for expressing and maintaining machine-readable context about a codebase",
5
5
  "type": "module",
6
6
  "bin": {
7
- "prelude": "./dist/bin/prelude.js"
7
+ "prelude": "dist/bin/prelude.js"
8
8
  },
9
9
  "files": [
10
10
  "dist/**/*",
@@ -13,15 +13,6 @@
13
13
  "SPEC.md",
14
14
  "LICENSE"
15
15
  ],
16
- "scripts": {
17
- "dev": "tsx watch bin/prelude.ts",
18
- "build": "tsc",
19
- "prepublishOnly": "pnpm build",
20
- "test": "vitest",
21
- "test:watch": "vitest --watch",
22
- "lint": "eslint . --ext .ts",
23
- "format": "prettier --write \"**/*.{ts,json,md}\""
24
- },
25
16
  "keywords": [
26
17
  "cli",
27
18
  "context",
@@ -60,5 +51,13 @@
60
51
  },
61
52
  "engines": {
62
53
  "node": ">=18.0.0"
54
+ },
55
+ "scripts": {
56
+ "dev": "tsx watch bin/prelude.ts",
57
+ "build": "tsc",
58
+ "test": "vitest",
59
+ "test:watch": "vitest --watch",
60
+ "lint": "eslint . --ext .ts",
61
+ "format": "prettier --write \"**/*.{ts,json,md}\""
63
62
  }
64
- }
63
+ }