@ai-dossier/core 1.0.1

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 (114) hide show
  1. package/dist/checksum.d.ts +15 -0
  2. package/dist/checksum.d.ts.map +1 -0
  3. package/dist/checksum.js +45 -0
  4. package/dist/checksum.js.map +1 -0
  5. package/dist/formatter/formatter.d.ts +3 -0
  6. package/dist/formatter/formatter.d.ts.map +1 -0
  7. package/dist/formatter/formatter.js +120 -0
  8. package/dist/formatter/formatter.js.map +1 -0
  9. package/dist/formatter/index.d.ts +5 -0
  10. package/dist/formatter/index.d.ts.map +1 -0
  11. package/dist/formatter/index.js +32 -0
  12. package/dist/formatter/index.js.map +1 -0
  13. package/dist/formatter/types.d.ts +11 -0
  14. package/dist/formatter/types.d.ts.map +1 -0
  15. package/dist/formatter/types.js +9 -0
  16. package/dist/formatter/types.js.map +1 -0
  17. package/dist/index.d.ts +23 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +77 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/linter/config.d.ts +4 -0
  22. package/dist/linter/config.d.ts.map +1 -0
  23. package/dist/linter/config.js +42 -0
  24. package/dist/linter/config.js.map +1 -0
  25. package/dist/linter/index.d.ts +8 -0
  26. package/dist/linter/index.d.ts.map +1 -0
  27. package/dist/linter/index.js +69 -0
  28. package/dist/linter/index.js.map +1 -0
  29. package/dist/linter/registry.d.ts +10 -0
  30. package/dist/linter/registry.d.ts.map +1 -0
  31. package/dist/linter/registry.js +37 -0
  32. package/dist/linter/registry.js.map +1 -0
  33. package/dist/linter/rules/checksum-valid.d.ts +3 -0
  34. package/dist/linter/rules/checksum-valid.d.ts.map +1 -0
  35. package/dist/linter/rules/checksum-valid.js +46 -0
  36. package/dist/linter/rules/checksum-valid.js.map +1 -0
  37. package/dist/linter/rules/index.d.ts +11 -0
  38. package/dist/linter/rules/index.d.ts.map +1 -0
  39. package/dist/linter/rules/index.js +27 -0
  40. package/dist/linter/rules/index.js.map +1 -0
  41. package/dist/linter/rules/objective-quality.d.ts +3 -0
  42. package/dist/linter/rules/objective-quality.d.ts.map +1 -0
  43. package/dist/linter/rules/objective-quality.js +44 -0
  44. package/dist/linter/rules/objective-quality.js.map +1 -0
  45. package/dist/linter/rules/required-sections.d.ts +3 -0
  46. package/dist/linter/rules/required-sections.d.ts.map +1 -0
  47. package/dist/linter/rules/required-sections.js +32 -0
  48. package/dist/linter/rules/required-sections.js.map +1 -0
  49. package/dist/linter/rules/risk-level-consistency.d.ts +3 -0
  50. package/dist/linter/rules/risk-level-consistency.d.ts.map +1 -0
  51. package/dist/linter/rules/risk-level-consistency.js +24 -0
  52. package/dist/linter/rules/risk-level-consistency.js.map +1 -0
  53. package/dist/linter/rules/schema-valid.d.ts +3 -0
  54. package/dist/linter/rules/schema-valid.d.ts.map +1 -0
  55. package/dist/linter/rules/schema-valid.js +63 -0
  56. package/dist/linter/rules/schema-valid.js.map +1 -0
  57. package/dist/linter/rules/semver-version.d.ts +3 -0
  58. package/dist/linter/rules/semver-version.d.ts.map +1 -0
  59. package/dist/linter/rules/semver-version.js +34 -0
  60. package/dist/linter/rules/semver-version.js.map +1 -0
  61. package/dist/linter/rules/tools-check-command.d.ts +3 -0
  62. package/dist/linter/rules/tools-check-command.d.ts.map +1 -0
  63. package/dist/linter/rules/tools-check-command.js +27 -0
  64. package/dist/linter/rules/tools-check-command.js.map +1 -0
  65. package/dist/linter/types.d.ts +31 -0
  66. package/dist/linter/types.d.ts.map +1 -0
  67. package/dist/linter/types.js +3 -0
  68. package/dist/linter/types.js.map +1 -0
  69. package/dist/parser.d.ts +18 -0
  70. package/dist/parser.d.ts.map +1 -0
  71. package/dist/parser.js +74 -0
  72. package/dist/parser.js.map +1 -0
  73. package/dist/schema/dossier-schema.json +745 -0
  74. package/dist/signature.d.ts +33 -0
  75. package/dist/signature.d.ts.map +1 -0
  76. package/dist/signature.js +111 -0
  77. package/dist/signature.js.map +1 -0
  78. package/dist/signers/ed25519.d.ts +17 -0
  79. package/dist/signers/ed25519.d.ts.map +1 -0
  80. package/dist/signers/ed25519.js +66 -0
  81. package/dist/signers/ed25519.js.map +1 -0
  82. package/dist/signers/index.d.ts +39 -0
  83. package/dist/signers/index.d.ts.map +1 -0
  84. package/dist/signers/index.js +18 -0
  85. package/dist/signers/index.js.map +1 -0
  86. package/dist/signers/kms.d.ts +20 -0
  87. package/dist/signers/kms.d.ts.map +1 -0
  88. package/dist/signers/kms.js +108 -0
  89. package/dist/signers/kms.js.map +1 -0
  90. package/dist/signers/registry.d.ts +29 -0
  91. package/dist/signers/registry.d.ts.map +1 -0
  92. package/dist/signers/registry.js +67 -0
  93. package/dist/signers/registry.js.map +1 -0
  94. package/dist/types.d.ts +79 -0
  95. package/dist/types.d.ts.map +1 -0
  96. package/dist/types.js +6 -0
  97. package/dist/types.js.map +1 -0
  98. package/dist/utils/crypto.d.ts +16 -0
  99. package/dist/utils/crypto.d.ts.map +1 -0
  100. package/dist/utils/crypto.js +25 -0
  101. package/dist/utils/crypto.js.map +1 -0
  102. package/dist/utils/errors.d.ts +18 -0
  103. package/dist/utils/errors.d.ts.map +1 -0
  104. package/dist/utils/errors.js +32 -0
  105. package/dist/utils/errors.js.map +1 -0
  106. package/dist/utils/fs.d.ts +12 -0
  107. package/dist/utils/fs.d.ts.map +1 -0
  108. package/dist/utils/fs.js +24 -0
  109. package/dist/utils/fs.js.map +1 -0
  110. package/dist/utils/verification.d.ts +11 -0
  111. package/dist/utils/verification.d.ts.map +1 -0
  112. package/dist/utils/verification.js +35 -0
  113. package/dist/utils/verification.js.map +1 -0
  114. package/package.json +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Cryptographic utilities for dossier operations
3
+ */
4
+ /**
5
+ * Calculate SHA256 hash of content
6
+ * @param content - String content to hash
7
+ * @returns Buffer containing the hash
8
+ */
9
+ export declare function sha256Hash(content: string): Buffer;
10
+ /**
11
+ * Calculate SHA256 hash of content as hex string
12
+ * @param content - String content to hash
13
+ * @returns Hex string of the hash
14
+ */
15
+ export declare function sha256Hex(content: string): string;
16
+ //# sourceMappingURL=crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /**
3
+ * Cryptographic utilities for dossier operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.sha256Hash = sha256Hash;
7
+ exports.sha256Hex = sha256Hex;
8
+ const node_crypto_1 = require("node:crypto");
9
+ /**
10
+ * Calculate SHA256 hash of content
11
+ * @param content - String content to hash
12
+ * @returns Buffer containing the hash
13
+ */
14
+ function sha256Hash(content) {
15
+ return (0, node_crypto_1.createHash)('sha256').update(content, 'utf8').digest();
16
+ }
17
+ /**
18
+ * Calculate SHA256 hash of content as hex string
19
+ * @param content - String content to hash
20
+ * @returns Hex string of the hash
21
+ */
22
+ function sha256Hex(content) {
23
+ return sha256Hash(content).toString('hex');
24
+ }
25
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":";AAAA;;GAEG;;AASH,gCAEC;AAOD,8BAEC;AAlBD,6CAAyC;AAEzC;;;;GAIG;AACH,SAAgB,UAAU,CAAC,OAAe;IACxC,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,OAAe;IACvC,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Error handling utilities
3
+ * Safe extraction of error information from unknown error types
4
+ */
5
+ /**
6
+ * Safely extract error message from unknown error type
7
+ * Handles the common TypeScript pattern of catching 'unknown' errors
8
+ * @param err - The caught error (unknown type)
9
+ * @returns Error message string
10
+ */
11
+ export declare function getErrorMessage(err: unknown): string;
12
+ /**
13
+ * Safely extract error stack from unknown error type
14
+ * @param err - The caught error (unknown type)
15
+ * @returns Error stack string or undefined
16
+ */
17
+ export declare function getErrorStack(err: unknown): string | undefined;
18
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAKpD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAK9D"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /**
3
+ * Error handling utilities
4
+ * Safe extraction of error information from unknown error types
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.getErrorMessage = getErrorMessage;
8
+ exports.getErrorStack = getErrorStack;
9
+ /**
10
+ * Safely extract error message from unknown error type
11
+ * Handles the common TypeScript pattern of catching 'unknown' errors
12
+ * @param err - The caught error (unknown type)
13
+ * @returns Error message string
14
+ */
15
+ function getErrorMessage(err) {
16
+ if (err instanceof Error) {
17
+ return err.message;
18
+ }
19
+ return String(err);
20
+ }
21
+ /**
22
+ * Safely extract error stack from unknown error type
23
+ * @param err - The caught error (unknown type)
24
+ * @returns Error stack string or undefined
25
+ */
26
+ function getErrorStack(err) {
27
+ if (err instanceof Error) {
28
+ return err.stack;
29
+ }
30
+ return undefined;
31
+ }
32
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAQH,0CAKC;AAOD,sCAKC;AAvBD;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,GAAY;IAC1C,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,GAAY;IACxC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * File system utilities for dossier operations
3
+ */
4
+ /**
5
+ * Read a file if it exists, optionally throwing an error if not found
6
+ * @param filePath - Path to the file
7
+ * @param errorMessage - Optional error message template (use {path} as placeholder)
8
+ * @returns File content as string, or null if file doesn't exist and no errorMessage provided
9
+ * @throws Error if file doesn't exist and errorMessage is provided
10
+ */
11
+ export declare function readFileIfExists(filePath: string, errorMessage?: string): string | null;
12
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQvF"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * File system utilities for dossier operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.readFileIfExists = readFileIfExists;
7
+ const node_fs_1 = require("node:fs");
8
+ /**
9
+ * Read a file if it exists, optionally throwing an error if not found
10
+ * @param filePath - Path to the file
11
+ * @param errorMessage - Optional error message template (use {path} as placeholder)
12
+ * @returns File content as string, or null if file doesn't exist and no errorMessage provided
13
+ * @throws Error if file doesn't exist and errorMessage is provided
14
+ */
15
+ function readFileIfExists(filePath, errorMessage) {
16
+ if (!(0, node_fs_1.existsSync)(filePath)) {
17
+ if (errorMessage) {
18
+ throw new Error(errorMessage.replace('{path}', filePath));
19
+ }
20
+ return null;
21
+ }
22
+ return (0, node_fs_1.readFileSync)(filePath, 'utf8');
23
+ }
24
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAWH,4CAQC;AAjBD,qCAAmD;AAEnD;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,QAAgB,EAAE,YAAqB;IACtE,IAAI,CAAC,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAA,sBAAY,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Verification result factory functions
3
+ */
4
+ import type { VerificationResult } from '../types';
5
+ /**
6
+ * Create a default VerificationResult with safe initial values
7
+ * @param dossierFile - Path to the dossier file being verified
8
+ * @returns VerificationResult with BLOCK recommendation and safe defaults
9
+ */
10
+ export declare function createDefaultVerificationResult(dossierFile: string): VerificationResult;
11
+ //# sourceMappingURL=verification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../src/utils/verification.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAsBvF"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /**
3
+ * Verification result factory functions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createDefaultVerificationResult = createDefaultVerificationResult;
7
+ /**
8
+ * Create a default VerificationResult with safe initial values
9
+ * @param dossierFile - Path to the dossier file being verified
10
+ * @returns VerificationResult with BLOCK recommendation and safe defaults
11
+ */
12
+ function createDefaultVerificationResult(dossierFile) {
13
+ return {
14
+ dossierFile,
15
+ integrity: {
16
+ status: 'missing',
17
+ message: '',
18
+ },
19
+ authenticity: {
20
+ status: 'unsigned',
21
+ message: '',
22
+ isTrusted: false,
23
+ },
24
+ riskAssessment: {
25
+ riskLevel: 'unknown',
26
+ riskFactors: [],
27
+ destructiveOperations: [],
28
+ requiresApproval: true,
29
+ },
30
+ recommendation: 'BLOCK',
31
+ message: '',
32
+ errors: [],
33
+ };
34
+ }
35
+ //# sourceMappingURL=verification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/utils/verification.ts"],"names":[],"mappings":";AAAA;;GAEG;;AASH,0EAsBC;AA3BD;;;;GAIG;AACH,SAAgB,+BAA+B,CAAC,WAAmB;IACjE,OAAO;QACL,WAAW;QACX,SAAS,EAAE;YACT,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,EAAE;SACZ;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,KAAK;SACjB;QACD,cAAc,EAAE;YACd,SAAS,EAAE,SAAS;YACpB,WAAW,EAAE,EAAE;YACf,qBAAqB,EAAE,EAAE;YACzB,gBAAgB,EAAE,IAAI;SACvB;QACD,cAAc,EAAE,OAAO;QACvB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC"}
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@ai-dossier/core",
3
+ "version": "1.0.1",
4
+ "description": "Core verification and parsing logic for dossier automation standard",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist/"
9
+ ],
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "tsc --watch",
13
+ "test": "vitest run",
14
+ "test:watch": "vitest",
15
+ "test:ui": "vitest --ui",
16
+ "test:coverage": "vitest run --coverage"
17
+ },
18
+ "keywords": [
19
+ "dossier",
20
+ "parsing",
21
+ "verification",
22
+ "checksum",
23
+ "signature",
24
+ "security"
25
+ ],
26
+ "author": "Yuval Dimnik <yuval.dimnik@gmail.com>",
27
+ "license": "MIT",
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "https://github.com/imboard-ai/ai-dossier.git",
31
+ "directory": "packages/core"
32
+ },
33
+ "homepage": "https://github.com/imboard-ai/ai-dossier#readme",
34
+ "bugs": {
35
+ "url": "https://github.com/imboard-ai/ai-dossier/issues"
36
+ },
37
+ "publishConfig": {
38
+ "access": "public",
39
+ "registry": "https://registry.npmjs.org"
40
+ },
41
+ "dependencies": {
42
+ "@aws-sdk/client-kms": "^3.927.0",
43
+ "ajv": "^8.18.0"
44
+ },
45
+ "devDependencies": {
46
+ "@types/node": "^24.10.0",
47
+ "@vitest/coverage-v8": "^4.0.9",
48
+ "@vitest/ui": "^4.0.9",
49
+ "typescript": "^5.9.3",
50
+ "vitest": "^4.0.9"
51
+ }
52
+ }