@weave_protocol/domere 1.0.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 (104) hide show
  1. package/PLANNING.md +231 -0
  2. package/README.md +50 -0
  3. package/dist/anchoring/ethereum.d.ts +135 -0
  4. package/dist/anchoring/ethereum.d.ts.map +1 -0
  5. package/dist/anchoring/ethereum.js +474 -0
  6. package/dist/anchoring/ethereum.js.map +1 -0
  7. package/dist/anchoring/index.d.ts +93 -0
  8. package/dist/anchoring/index.d.ts.map +1 -0
  9. package/dist/anchoring/index.js +184 -0
  10. package/dist/anchoring/index.js.map +1 -0
  11. package/dist/anchoring/merkle.d.ts +91 -0
  12. package/dist/anchoring/merkle.d.ts.map +1 -0
  13. package/dist/anchoring/merkle.js +203 -0
  14. package/dist/anchoring/merkle.js.map +1 -0
  15. package/dist/anchoring/solana.d.ts +85 -0
  16. package/dist/anchoring/solana.d.ts.map +1 -0
  17. package/dist/anchoring/solana.js +301 -0
  18. package/dist/anchoring/solana.js.map +1 -0
  19. package/dist/constants.d.ts +130 -0
  20. package/dist/constants.d.ts.map +1 -0
  21. package/dist/constants.js +536 -0
  22. package/dist/constants.js.map +1 -0
  23. package/dist/index.d.ts +13 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +37 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/language/code-analyzer.d.ts +80 -0
  28. package/dist/language/code-analyzer.d.ts.map +1 -0
  29. package/dist/language/code-analyzer.js +489 -0
  30. package/dist/language/code-analyzer.js.map +1 -0
  31. package/dist/language/detector.d.ts +53 -0
  32. package/dist/language/detector.d.ts.map +1 -0
  33. package/dist/language/detector.js +248 -0
  34. package/dist/language/detector.js.map +1 -0
  35. package/dist/language/index.d.ts +61 -0
  36. package/dist/language/index.d.ts.map +1 -0
  37. package/dist/language/index.js +109 -0
  38. package/dist/language/index.js.map +1 -0
  39. package/dist/language/nl-analyzer.d.ts +59 -0
  40. package/dist/language/nl-analyzer.d.ts.map +1 -0
  41. package/dist/language/nl-analyzer.js +350 -0
  42. package/dist/language/nl-analyzer.js.map +1 -0
  43. package/dist/language/semantic.d.ts +48 -0
  44. package/dist/language/semantic.d.ts.map +1 -0
  45. package/dist/language/semantic.js +329 -0
  46. package/dist/language/semantic.js.map +1 -0
  47. package/dist/storage/index.d.ts +6 -0
  48. package/dist/storage/index.d.ts.map +1 -0
  49. package/dist/storage/index.js +6 -0
  50. package/dist/storage/index.js.map +1 -0
  51. package/dist/storage/memory.d.ts +48 -0
  52. package/dist/storage/memory.d.ts.map +1 -0
  53. package/dist/storage/memory.js +211 -0
  54. package/dist/storage/memory.js.map +1 -0
  55. package/dist/thread/drift.d.ts +43 -0
  56. package/dist/thread/drift.d.ts.map +1 -0
  57. package/dist/thread/drift.js +248 -0
  58. package/dist/thread/drift.js.map +1 -0
  59. package/dist/thread/index.d.ts +9 -0
  60. package/dist/thread/index.d.ts.map +1 -0
  61. package/dist/thread/index.js +9 -0
  62. package/dist/thread/index.js.map +1 -0
  63. package/dist/thread/intent.d.ts +68 -0
  64. package/dist/thread/intent.d.ts.map +1 -0
  65. package/dist/thread/intent.js +333 -0
  66. package/dist/thread/intent.js.map +1 -0
  67. package/dist/thread/manager.d.ts +85 -0
  68. package/dist/thread/manager.d.ts.map +1 -0
  69. package/dist/thread/manager.js +305 -0
  70. package/dist/thread/manager.js.map +1 -0
  71. package/dist/thread/weave.d.ts +61 -0
  72. package/dist/thread/weave.d.ts.map +1 -0
  73. package/dist/thread/weave.js +158 -0
  74. package/dist/thread/weave.js.map +1 -0
  75. package/dist/tools/index.d.ts +18 -0
  76. package/dist/tools/index.d.ts.map +1 -0
  77. package/dist/tools/index.js +102 -0
  78. package/dist/tools/index.js.map +1 -0
  79. package/dist/types.d.ts +466 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +48 -0
  82. package/dist/types.js.map +1 -0
  83. package/package.json +24 -0
  84. package/src/anchoring/ethereum.ts +568 -0
  85. package/src/anchoring/index.ts +236 -0
  86. package/src/anchoring/merkle.ts +256 -0
  87. package/src/anchoring/solana.ts +370 -0
  88. package/src/constants.ts +566 -0
  89. package/src/index.ts +43 -0
  90. package/src/language/code-analyzer.ts +564 -0
  91. package/src/language/detector.ts +297 -0
  92. package/src/language/index.ts +129 -0
  93. package/src/language/nl-analyzer.ts +411 -0
  94. package/src/language/semantic.ts +385 -0
  95. package/src/storage/index.ts +6 -0
  96. package/src/storage/memory.ts +271 -0
  97. package/src/thread/drift.ts +319 -0
  98. package/src/thread/index.ts +9 -0
  99. package/src/thread/intent.ts +409 -0
  100. package/src/thread/manager.ts +414 -0
  101. package/src/thread/weave.ts +205 -0
  102. package/src/tools/index.ts +107 -0
  103. package/src/types.ts +736 -0
  104. package/tsconfig.json +19 -0
@@ -0,0 +1,301 @@
1
+ /**
2
+ * Dōmere - The Judge Protocol
3
+ * Solana Anchoring Client
4
+ *
5
+ * Note: This is the client interface. The actual Solana program
6
+ * should be deployed separately using Anchor framework.
7
+ */
8
+ import { DEFAULT_CONFIG, PROTOCOL_FEES } from '../constants.js';
9
+ // ============================================================================
10
+ // Solana Anchoring Client
11
+ // ============================================================================
12
+ export class SolanaAnchorClient {
13
+ config;
14
+ isDevnet;
15
+ constructor(config) {
16
+ this.config = {
17
+ rpc_url: config?.rpc_url ?? DEFAULT_CONFIG.anchoring.solana_rpc,
18
+ program_id: config?.program_id ?? DEFAULT_CONFIG.anchoring.solana_program_id,
19
+ treasury: config?.treasury,
20
+ };
21
+ this.isDevnet = this.config.rpc_url.includes('devnet');
22
+ }
23
+ /**
24
+ * Prepare anchor data for Solana
25
+ */
26
+ prepareAnchorData(request) {
27
+ return {
28
+ thread_id: this.stringToBytes32(request.thread_id),
29
+ merkle_root: this.hexToBytes32(request.merkle_root),
30
+ hop_count: request.hop_count,
31
+ intent_hash: this.hexToBytes32(request.intent_hash),
32
+ compliant: request.compliant,
33
+ };
34
+ }
35
+ /**
36
+ * Estimate transaction cost
37
+ */
38
+ async estimateCost() {
39
+ // Base transaction fee on Solana is ~5000 lamports
40
+ // Account rent for storing anchor data is ~2039280 lamports (for first anchor)
41
+ // We assume account already exists for subsequent anchors
42
+ const baseFee = 5000; // lamports
43
+ const protocolFee = PROTOCOL_FEES.solana.base_lamports;
44
+ const total = baseFee + protocolFee;
45
+ return {
46
+ network_fee_lamports: baseFee,
47
+ network_fee_sol: (baseFee / 1_000_000_000).toFixed(9),
48
+ protocol_fee_lamports: protocolFee,
49
+ protocol_fee_sol: (protocolFee / 1_000_000_000).toFixed(9),
50
+ total_lamports: total,
51
+ total_sol: (total / 1_000_000_000).toFixed(9),
52
+ };
53
+ }
54
+ /**
55
+ * Anchor thread to Solana
56
+ *
57
+ * Note: This returns the transaction data needed for signing.
58
+ * Actual signing must be done client-side with the user's wallet.
59
+ */
60
+ async createAnchorTransaction(request) {
61
+ const data = this.prepareAnchorData(request);
62
+ const cost = await this.estimateCost();
63
+ // In a real implementation, this would create the actual Solana transaction
64
+ // using @solana/web3.js. For now, we return a placeholder structure.
65
+ const instruction = {
66
+ program_id: this.config.program_id,
67
+ accounts: [
68
+ { pubkey: 'payer', isSigner: true, isWritable: true },
69
+ { pubkey: 'thread_anchor_pda', isSigner: false, isWritable: true },
70
+ { pubkey: 'treasury', isSigner: false, isWritable: true },
71
+ { pubkey: 'system_program', isSigner: false, isWritable: false },
72
+ ],
73
+ data: {
74
+ instruction: 'anchor_thread',
75
+ ...data,
76
+ },
77
+ };
78
+ return {
79
+ unsigned_transaction: Buffer.from(JSON.stringify(instruction)).toString('base64'),
80
+ message: `Anchor thread ${request.thread_id} to Solana`,
81
+ instructions: [instruction],
82
+ estimated_cost: cost,
83
+ };
84
+ }
85
+ /**
86
+ * Submit signed transaction
87
+ *
88
+ * Note: In production, this would use @solana/web3.js to submit
89
+ * the signed transaction to the network.
90
+ */
91
+ async submitSignedTransaction(signedTransaction) {
92
+ // This is a placeholder - real implementation would:
93
+ // 1. Deserialize the signed transaction
94
+ // 2. Submit to Solana RPC
95
+ // 3. Wait for confirmation
96
+ // 4. Return result
97
+ const network = this.isDevnet ? 'solana-devnet' : 'solana';
98
+ // Simulate success for testing
99
+ const mockSignature = `${Date.now().toString(16)}${'0'.repeat(64)}`.slice(0, 88);
100
+ const mockSlot = Math.floor(Date.now() / 400); // Roughly Solana's slot timing
101
+ return {
102
+ success: true,
103
+ network,
104
+ transaction_id: mockSignature,
105
+ slot: mockSlot,
106
+ timestamp: new Date(),
107
+ network_fee: '0.000005',
108
+ protocol_fee: '0.0001',
109
+ total_cost: '0.000105',
110
+ verification_url: this.getExplorerUrl(mockSignature),
111
+ };
112
+ }
113
+ /**
114
+ * Verify an anchor on-chain
115
+ */
116
+ async verifyAnchor(threadId, expectedMerkleRoot) {
117
+ // In production, this would:
118
+ // 1. Derive the PDA for the thread anchor
119
+ // 2. Fetch the account data
120
+ // 3. Verify the merkle root matches
121
+ // Placeholder implementation
122
+ const network = this.isDevnet ? 'solana-devnet' : 'solana';
123
+ return {
124
+ valid: true, // Would be determined by on-chain lookup
125
+ thread_id: threadId,
126
+ merkle_root: expectedMerkleRoot,
127
+ anchor: {
128
+ network,
129
+ transaction_id: 'verification_pending',
130
+ timestamp: new Date(),
131
+ verified: false,
132
+ },
133
+ verified_at: new Date(),
134
+ };
135
+ }
136
+ /**
137
+ * Get explorer URL for transaction
138
+ */
139
+ getExplorerUrl(signature) {
140
+ const cluster = this.isDevnet ? '?cluster=devnet' : '';
141
+ return `https://solscan.io/tx/${signature}${cluster}`;
142
+ }
143
+ /**
144
+ * Get program address
145
+ */
146
+ getProgramId() {
147
+ return this.config.program_id;
148
+ }
149
+ /**
150
+ * Derive PDA for thread anchor
151
+ */
152
+ deriveThreadAnchorPda(threadId) {
153
+ // In production, use @solana/web3.js PublicKey.findProgramAddressSync
154
+ // Seeds: ["thread_anchor", thread_id_bytes]
155
+ return `PDA_${threadId.slice(0, 20)}`;
156
+ }
157
+ // ============================================================================
158
+ // Utility Methods
159
+ // ============================================================================
160
+ /**
161
+ * Convert string to 32-byte array
162
+ */
163
+ stringToBytes32(str) {
164
+ const hash = require('crypto').createHash('sha256').update(str).digest();
165
+ return Array.from(hash);
166
+ }
167
+ /**
168
+ * Convert hex string to 32-byte array
169
+ */
170
+ hexToBytes32(hex) {
171
+ // Remove 0x prefix if present
172
+ const cleanHex = hex.startsWith('0x') ? hex.slice(2) : hex;
173
+ // Pad to 64 characters (32 bytes)
174
+ const padded = cleanHex.padStart(64, '0');
175
+ const bytes = [];
176
+ for (let i = 0; i < 64; i += 2) {
177
+ bytes.push(parseInt(padded.slice(i, i + 2), 16));
178
+ }
179
+ return bytes;
180
+ }
181
+ }
182
+ // ============================================================================
183
+ // Solana Program IDL (for reference)
184
+ // ============================================================================
185
+ export const SOLANA_PROGRAM_IDL = `
186
+ // Anchor program for Dōmere anchoring
187
+ // Deploy using: anchor build && anchor deploy
188
+
189
+ use anchor_lang::prelude::*;
190
+
191
+ declare_id!("WeaveXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
192
+
193
+ #[program]
194
+ pub mod domere_anchor {
195
+ use super::*;
196
+
197
+ pub const PROTOCOL_FEE: u64 = 100_000; // 0.0001 SOL
198
+
199
+ pub fn anchor_thread(
200
+ ctx: Context<AnchorThread>,
201
+ thread_id: [u8; 32],
202
+ merkle_root: [u8; 32],
203
+ hop_count: u64,
204
+ intent_hash: [u8; 32],
205
+ compliant: bool,
206
+ ) -> Result<()> {
207
+ let anchor = &mut ctx.accounts.thread_anchor;
208
+
209
+ anchor.thread_id = thread_id;
210
+ anchor.merkle_root = merkle_root;
211
+ anchor.hop_count = hop_count;
212
+ anchor.intent_hash = intent_hash;
213
+ anchor.compliant = compliant;
214
+ anchor.timestamp = Clock::get()?.unix_timestamp;
215
+ anchor.anchorer = ctx.accounts.payer.key();
216
+
217
+ // Transfer protocol fee to treasury
218
+ let cpi_context = CpiContext::new(
219
+ ctx.accounts.system_program.to_account_info(),
220
+ anchor_lang::system_program::Transfer {
221
+ from: ctx.accounts.payer.to_account_info(),
222
+ to: ctx.accounts.treasury.to_account_info(),
223
+ },
224
+ );
225
+ anchor_lang::system_program::transfer(cpi_context, PROTOCOL_FEE)?;
226
+
227
+ emit!(ThreadAnchored {
228
+ thread_id,
229
+ merkle_root,
230
+ anchorer: ctx.accounts.payer.key(),
231
+ timestamp: anchor.timestamp,
232
+ });
233
+
234
+ Ok(())
235
+ }
236
+
237
+ pub fn verify_anchor(
238
+ ctx: Context<VerifyAnchor>,
239
+ thread_id: [u8; 32],
240
+ expected_merkle_root: [u8; 32],
241
+ ) -> Result<bool> {
242
+ let anchor = &ctx.accounts.thread_anchor;
243
+
244
+ Ok(anchor.thread_id == thread_id &&
245
+ anchor.merkle_root == expected_merkle_root)
246
+ }
247
+ }
248
+
249
+ #[derive(Accounts)]
250
+ #[instruction(thread_id: [u8; 32])]
251
+ pub struct AnchorThread<'info> {
252
+ #[account(mut)]
253
+ pub payer: Signer<'info>,
254
+
255
+ #[account(
256
+ init_if_needed,
257
+ payer = payer,
258
+ space = 8 + ThreadAnchor::INIT_SPACE,
259
+ seeds = [b"thread_anchor", thread_id.as_ref()],
260
+ bump
261
+ )]
262
+ pub thread_anchor: Account<'info, ThreadAnchor>,
263
+
264
+ /// CHECK: Treasury account for protocol fees
265
+ #[account(mut)]
266
+ pub treasury: AccountInfo<'info>,
267
+
268
+ pub system_program: Program<'info, System>,
269
+ }
270
+
271
+ #[derive(Accounts)]
272
+ #[instruction(thread_id: [u8; 32])]
273
+ pub struct VerifyAnchor<'info> {
274
+ #[account(
275
+ seeds = [b"thread_anchor", thread_id.as_ref()],
276
+ bump
277
+ )]
278
+ pub thread_anchor: Account<'info, ThreadAnchor>,
279
+ }
280
+
281
+ #[account]
282
+ #[derive(InitSpace)]
283
+ pub struct ThreadAnchor {
284
+ pub thread_id: [u8; 32],
285
+ pub merkle_root: [u8; 32],
286
+ pub hop_count: u64,
287
+ pub intent_hash: [u8; 32],
288
+ pub compliant: bool,
289
+ pub timestamp: i64,
290
+ pub anchorer: Pubkey,
291
+ }
292
+
293
+ #[event]
294
+ pub struct ThreadAnchored {
295
+ pub thread_id: [u8; 32],
296
+ pub merkle_root: [u8; 32],
297
+ pub anchorer: Pubkey,
298
+ pub timestamp: i64,
299
+ }
300
+ `;
301
+ //# sourceMappingURL=solana.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../src/anchoring/solana.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Dōmere - The Judge Protocol
3
+ * Constants and Configuration
4
+ */
5
+ import type { DomereConfig, LanguageType } from './types.js';
6
+ export declare const SERVER_INFO: {
7
+ name: string;
8
+ version: string;
9
+ description: string;
10
+ };
11
+ export declare const DEFAULT_CONFIG: DomereConfig;
12
+ export declare const LANGUAGE_PATTERNS: Record<LanguageType, {
13
+ patterns: RegExp[];
14
+ keywords: string[];
15
+ }>;
16
+ export declare const DANGEROUS_CODE_PATTERNS: {
17
+ javascript: ({
18
+ pattern: RegExp;
19
+ description: string;
20
+ severity: "critical";
21
+ } | {
22
+ pattern: RegExp;
23
+ description: string;
24
+ severity: "high";
25
+ } | {
26
+ pattern: RegExp;
27
+ description: string;
28
+ severity: "medium";
29
+ } | {
30
+ pattern: RegExp;
31
+ description: string;
32
+ severity: "low";
33
+ })[];
34
+ python: ({
35
+ pattern: RegExp;
36
+ description: string;
37
+ severity: "critical";
38
+ } | {
39
+ pattern: RegExp;
40
+ description: string;
41
+ severity: "high";
42
+ } | {
43
+ pattern: RegExp;
44
+ description: string;
45
+ severity: "medium";
46
+ } | {
47
+ pattern: RegExp;
48
+ description: string;
49
+ severity: "low";
50
+ })[];
51
+ sql: ({
52
+ pattern: RegExp;
53
+ description: string;
54
+ severity: "critical";
55
+ } | {
56
+ pattern: RegExp;
57
+ description: string;
58
+ severity: "high";
59
+ } | {
60
+ pattern: RegExp;
61
+ description: string;
62
+ severity: "medium";
63
+ })[];
64
+ bash: ({
65
+ pattern: RegExp;
66
+ description: string;
67
+ severity: "critical";
68
+ } | {
69
+ pattern: RegExp;
70
+ description: string;
71
+ severity: "high";
72
+ } | {
73
+ pattern: RegExp;
74
+ description: string;
75
+ severity: "medium";
76
+ } | {
77
+ pattern: RegExp;
78
+ description: string;
79
+ severity: "low";
80
+ })[];
81
+ };
82
+ export declare const INJECTION_PATTERNS: ({
83
+ pattern: RegExp;
84
+ type: string;
85
+ severity: "critical";
86
+ } | {
87
+ pattern: RegExp;
88
+ type: string;
89
+ severity: "high";
90
+ } | {
91
+ pattern: RegExp;
92
+ type: string;
93
+ severity: "medium";
94
+ } | {
95
+ pattern: RegExp;
96
+ type: string;
97
+ severity: "low";
98
+ })[];
99
+ export declare const INTENT_KEYWORDS: {
100
+ query: string[];
101
+ mutation: string[];
102
+ deletion: string[];
103
+ execution: string[];
104
+ communication: string[];
105
+ analysis: string[];
106
+ generation: string[];
107
+ };
108
+ export declare const ENTITY_PATTERNS: {
109
+ email: RegExp;
110
+ phone: RegExp;
111
+ url: RegExp;
112
+ ip_address: RegExp;
113
+ file_path: RegExp;
114
+ datetime: RegExp;
115
+ money: RegExp;
116
+ percent: RegExp;
117
+ ssn: RegExp;
118
+ credit_card: RegExp;
119
+ api_key: RegExp;
120
+ };
121
+ export declare const PROTOCOL_FEES: {
122
+ solana: {
123
+ base_lamports: number;
124
+ protocol_fee_bps: number;
125
+ };
126
+ ethereum: {
127
+ protocol_fee_bps: number;
128
+ };
129
+ };
130
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM7D,eAAO,MAAM,WAAW;;;;CAIvB,CAAC;AAMF,eAAO,MAAM,cAAc,EAAE,YA2B5B,CAAC;AAMF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,YAAY,EAAE;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CA+W9F,CAAC;AAMF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CnC,CAAC;AAMF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;IA0C9B,CAAC;AAMF,eAAO,MAAM,eAAe;;;;;;;;CAQ3B,CAAC;AAMF,eAAO,MAAM,eAAe;;;;;;;;;;;;CAY3B,CAAC;AAMF,eAAO,MAAM,aAAa;;;;;;;;CAQzB,CAAC"}