@getripple/core 1.0.9 → 1.0.10

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.
@@ -0,0 +1,34 @@
1
+ import { RippleAuditSummary } from "./audit";
2
+ import { RippleApprovalRecord } from "./approval";
3
+ import { ChangeIntent } from "./change-intent";
4
+ export declare class RippleCloudClient {
5
+ private apiUrl;
6
+ private apiKey;
7
+ constructor();
8
+ get isConfigured(): boolean;
9
+ private getGitMetadata;
10
+ syncIntent(intent: ChangeIntent): Promise<void>;
11
+ syncApproval(approval: RippleApprovalRecord): Promise<void>;
12
+ syncVerification(verification: any): Promise<void>;
13
+ syncAudit(audit: RippleAuditSummary, commitSha: string): Promise<{
14
+ sent: boolean;
15
+ error?: string;
16
+ }>;
17
+ }
18
+ export declare function getCurrentCommitSha(execSync: any): string;
19
+ export declare function getCurrentBranch(execSync: any): string;
20
+ export declare function getCurrentActor(execSync: any): string;
21
+ export interface CloudAuditPayload {
22
+ protocol?: string;
23
+ intentId: string;
24
+ decision: string;
25
+ commitSha: string;
26
+ branch: string;
27
+ actor: string;
28
+ source: string;
29
+ payload: any;
30
+ }
31
+ export declare function syncAuditToCloud(data: CloudAuditPayload): Promise<{
32
+ sent: boolean;
33
+ error?: string;
34
+ }>;
package/dist/cloud.js ADDED
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.syncAuditToCloud = exports.getCurrentActor = exports.getCurrentBranch = exports.getCurrentCommitSha = exports.RippleCloudClient = void 0;
27
+ const crypto = __importStar(require("crypto"));
28
+ const child_process_1 = require("child_process");
29
+ // FOUNDER FIX: Inline dotenv loader from process.cwd()
30
+ const fs_1 = require("fs");
31
+ const path_1 = require("path");
32
+ function loadDotEnv() {
33
+ const envPath = (0, path_1.join)(process.cwd(), ".env");
34
+ if (!(0, fs_1.existsSync)(envPath))
35
+ return;
36
+ try {
37
+ const lines = (0, fs_1.readFileSync)(envPath, "utf8").split("\n");
38
+ for (const line of lines) {
39
+ const trimmed = line.trim();
40
+ if (!trimmed || trimmed.startsWith("#"))
41
+ continue;
42
+ const eqIndex = trimmed.indexOf("=");
43
+ if (eqIndex < 1)
44
+ continue;
45
+ const key = trimmed.slice(0, eqIndex).trim();
46
+ const value = trimmed.slice(eqIndex + 1).trim()
47
+ .replace(/^["']/, "").replace(/["']$/, "");
48
+ if (key && !(key in process.env)) {
49
+ process.env[key] = value;
50
+ }
51
+ }
52
+ }
53
+ catch { /* silent — never block for dotenv failures */ }
54
+ }
55
+ loadDotEnv(); // Must run before constants are evaluated
56
+ const RIPPLE_CLOUD_URL = process.env.RIPPLE_CLOUD_URL ?? "https://ripple-cloud.vercel.app";
57
+ class RippleCloudClient {
58
+ constructor() {
59
+ this.apiUrl = RIPPLE_CLOUD_URL;
60
+ this.apiKey = process.env.RIPPLE_API_KEY;
61
+ }
62
+ get isConfigured() {
63
+ return typeof this.apiKey === "string" && this.apiKey.trim().length > 0;
64
+ }
65
+ getGitMetadata(commitSha) {
66
+ try {
67
+ const branch = (0, child_process_1.execSync)("git rev-parse --abbrev-ref HEAD", { encoding: "utf8", stdio: "pipe" }).trim();
68
+ let actor = "unknown_actor";
69
+ try {
70
+ actor = commitSha
71
+ ? (0, child_process_1.execSync)(`git log -1 --pretty=format:'%ae' ${commitSha}`, { encoding: "utf8", stdio: "pipe" }).trim()
72
+ : (0, child_process_1.execSync)("git config user.email", { encoding: "utf8", stdio: "pipe" }).trim();
73
+ }
74
+ catch {
75
+ actor = (0, child_process_1.execSync)("git config user.email", { encoding: "utf8", stdio: "pipe" }).trim();
76
+ }
77
+ return { branch, actor };
78
+ }
79
+ catch {
80
+ return { branch: "unknown", actor: "unknown" };
81
+ }
82
+ }
83
+ async syncIntent(intent) {
84
+ if (!this.isConfigured)
85
+ return;
86
+ try {
87
+ await fetch(`${this.apiUrl}/api/intents`, {
88
+ method: "POST",
89
+ headers: { "Content-Type": "application/json", "Authorization": `Bearer ${this.apiKey}` },
90
+ body: JSON.stringify(intent)
91
+ });
92
+ }
93
+ catch (error) { }
94
+ }
95
+ async syncApproval(approval) {
96
+ if (!this.isConfigured)
97
+ return;
98
+ try {
99
+ const { branch, actor } = this.getGitMetadata();
100
+ const rawPayload = JSON.stringify(approval);
101
+ const payloadHash = crypto.createHash("sha256").update(rawPayload).digest("hex");
102
+ const requestBody = {
103
+ protocol: "ripple-approval",
104
+ intentId: approval.intentId,
105
+ branch, actor, source: "cli", payloadHash,
106
+ gate: approval.gate, payload: approval
107
+ };
108
+ await fetch(`${this.apiUrl}/api/approvals`, {
109
+ method: "POST",
110
+ headers: { "Content-Type": "application/json", "Authorization": `Bearer ${this.apiKey}` },
111
+ body: JSON.stringify(requestBody)
112
+ });
113
+ }
114
+ catch (error) { }
115
+ }
116
+ async syncVerification(verification) {
117
+ if (!this.isConfigured)
118
+ return;
119
+ try {
120
+ const { branch, actor } = this.getGitMetadata();
121
+ const rawPayload = JSON.stringify(verification);
122
+ const payloadHash = crypto.createHash("sha256").update(rawPayload).digest("hex");
123
+ const requestBody = {
124
+ protocol: "ripple-verification",
125
+ intentId: verification.intentId,
126
+ branch, actor, source: "cli", payloadHash,
127
+ status: verification.status, payload: verification
128
+ };
129
+ await fetch(`${this.apiUrl}/api/verification`, {
130
+ method: "POST",
131
+ headers: { "Content-Type": "application/json", "Authorization": `Bearer ${this.apiKey}` },
132
+ body: JSON.stringify(requestBody)
133
+ });
134
+ }
135
+ catch (error) { }
136
+ }
137
+ async syncAudit(audit, commitSha) {
138
+ // FOUNDER FIX: Re-check environment variable dynamically
139
+ const apiKey = process.env.RIPPLE_API_KEY;
140
+ if (!apiKey) {
141
+ if (process.env.RIPPLE_CLOUD_URL) {
142
+ console.warn("\n[Ripple Cloud] ⚠ RIPPLE_API_KEY not found. Set it in .env or environment.");
143
+ }
144
+ return { sent: false };
145
+ }
146
+ try {
147
+ const { branch, actor } = this.getGitMetadata(commitSha);
148
+ const rawPayload = JSON.stringify(audit);
149
+ const payloadHash = crypto.createHash("sha256").update(rawPayload).digest("hex");
150
+ const requestBody = {
151
+ protocol: "ripple-audit",
152
+ intentId: audit.intent.id,
153
+ commitSha: commitSha,
154
+ branch, actor, source: "cli", payloadHash,
155
+ decision: audit.decision, payload: audit
156
+ };
157
+ const response = await fetch(`${this.apiUrl}/api/audit`, {
158
+ method: "POST",
159
+ headers: { "Content-Type": "application/json", "Authorization": `Bearer ${apiKey}` },
160
+ body: JSON.stringify(requestBody),
161
+ signal: AbortSignal.timeout(10000)
162
+ });
163
+ if (!response.ok) {
164
+ const body = await response.text().catch(() => "");
165
+ return { sent: false, error: `HTTP ${response.status}: ${body}` };
166
+ }
167
+ return { sent: true };
168
+ }
169
+ catch (err) {
170
+ const message = err instanceof Error ? err.message : String(err);
171
+ return { sent: false, error: message };
172
+ }
173
+ }
174
+ }
175
+ exports.RippleCloudClient = RippleCloudClient;
176
+ function getCurrentCommitSha(execSync) {
177
+ if (process.env.GITHUB_SHA)
178
+ return process.env.GITHUB_SHA;
179
+ try {
180
+ return execSync("git rev-parse HEAD").toString().trim();
181
+ }
182
+ catch {
183
+ return "unknown";
184
+ }
185
+ }
186
+ exports.getCurrentCommitSha = getCurrentCommitSha;
187
+ function getCurrentBranch(execSync) {
188
+ if (process.env.GITHUB_REF_NAME)
189
+ return process.env.GITHUB_REF_NAME;
190
+ if (process.env.GITHUB_HEAD_REF)
191
+ return process.env.GITHUB_HEAD_REF;
192
+ try {
193
+ return execSync("git branch --show-current").toString().trim() || "unknown";
194
+ }
195
+ catch {
196
+ return "unknown";
197
+ }
198
+ }
199
+ exports.getCurrentBranch = getCurrentBranch;
200
+ function getCurrentActor(execSync) {
201
+ if (process.env.GITHUB_ACTOR)
202
+ return process.env.GITHUB_ACTOR;
203
+ try {
204
+ return execSync("git config user.name").toString().trim() || execSync("git config user.email").toString().trim() || "unknown";
205
+ }
206
+ catch {
207
+ return "unknown";
208
+ }
209
+ }
210
+ exports.getCurrentActor = getCurrentActor;
211
+ async function syncAuditToCloud(data) {
212
+ const apiKey = process.env.RIPPLE_API_KEY;
213
+ const apiUrl = process.env.RIPPLE_CLOUD_URL ?? "https://ripple-cloud.vercel.app";
214
+ if (!apiKey) {
215
+ if (process.env.RIPPLE_CLOUD_URL) {
216
+ console.warn("\n[Ripple Cloud] ⚠ RIPPLE_API_KEY not found. Set it in .env or environment.");
217
+ }
218
+ return { sent: false };
219
+ }
220
+ try {
221
+ const requestBody = {
222
+ protocol: data.protocol || "ripple-audit",
223
+ intentId: data.intentId,
224
+ commitSha: data.commitSha,
225
+ branch: data.branch,
226
+ actor: data.actor,
227
+ source: data.source,
228
+ payloadHash: crypto.createHash("sha256").update(JSON.stringify(data.payload)).digest("hex"),
229
+ decision: data.decision,
230
+ payload: data.payload,
231
+ };
232
+ const response = await fetch(`${apiUrl}/api/audit`, {
233
+ method: "POST",
234
+ headers: {
235
+ "Content-Type": "application/json",
236
+ Authorization: `Bearer ${apiKey}`,
237
+ },
238
+ body: JSON.stringify(requestBody),
239
+ signal: AbortSignal.timeout(10000),
240
+ });
241
+ if (!response.ok) {
242
+ const body = await response.text().catch(() => "");
243
+ return { sent: false, error: `HTTP ${response.status}: ${body}` };
244
+ }
245
+ return { sent: true };
246
+ }
247
+ catch (err) {
248
+ const message = err instanceof Error ? err.message : String(err);
249
+ return { sent: false, error: message };
250
+ }
251
+ }
252
+ exports.syncAuditToCloud = syncAuditToCloud;
253
+ //# sourceMappingURL=cloud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud.js","sourceRoot":"","sources":["../src/cloud.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,3 +10,5 @@ export * from "./readiness";
10
10
  export * from "./risk";
11
11
  export * from "./staged-check";
12
12
  export * from "./types";
13
+ export * from "./cloud";
14
+ export { syncAuditToCloud } from "./cloud.js";
package/dist/index.js CHANGED
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.syncAuditToCloud = void 0;
17
18
  __exportStar(require("./adapters"), exports);
18
19
  __exportStar(require("./approval"), exports);
19
20
  __exportStar(require("./audit"), exports);
@@ -26,4 +27,7 @@ __exportStar(require("./readiness"), exports);
26
27
  __exportStar(require("./risk"), exports);
27
28
  __exportStar(require("./staged-check"), exports);
28
29
  __exportStar(require("./types"), exports);
30
+ __exportStar(require("./cloud"), exports);
31
+ var cloud_js_1 = require("./cloud.js");
32
+ Object.defineProperty(exports, "syncAuditToCloud", { enumerable: true, get: function () { return cloud_js_1.syncAuditToCloud; } });
29
33
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,6CAA2B;AAC3B,0CAAwB;AACxB,mDAAiC;AACjC,kDAAgC;AAChC,0CAAwB;AACxB,+CAA6B;AAC7B,2CAAyB;AACzB,8CAA4B;AAC5B,yCAAuB;AACvB,iDAA+B;AAC/B,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,6CAA2B;AAC3B,0CAAwB;AACxB,mDAAiC;AACjC,kDAAgC;AAChC,0CAAwB;AACxB,+CAA6B;AAC7B,2CAAyB;AACzB,8CAA4B;AAC5B,yCAAuB;AACvB,iDAA+B;AAC/B,0CAAwB;AACxB,0CAAwB;AACxB,uCAA8C;AAArC,4GAAA,gBAAgB,OAAA"}
package/package.json CHANGED
@@ -1,52 +1,52 @@
1
- {
2
- "name": "@getripple/core",
3
- "version": "1.0.9",
4
- "description": "Core engine for Ripple's local authorization gate: context planning, drift checks, and trust boundaries.",
5
- "license": "MIT",
6
- "type": "commonjs",
7
- "main": "dist/index.js",
8
- "types": "dist/index.d.ts",
9
- "repository": {
10
- "type": "git",
11
- "url": "git+https://github.com/raushankcode/ripple.git",
12
- "directory": "packages/core"
13
- },
14
- "bugs": {
15
- "url": "https://github.com/raushankcode/ripple/issues"
16
- },
17
- "homepage": "https://raushankcode.github.io/ripple/",
18
- "keywords": [
19
- "ai-agent",
20
- "agent-workflow",
21
- "codebase",
22
- "architecture",
23
- "context-planning",
24
- "authorization-gate",
25
- "trust-boundaries",
26
- "static-analysis",
27
- "typescript",
28
- "javascript"
29
- ],
30
- "engines": {
31
- "node": ">=18"
32
- },
33
- "publishConfig": {
34
- "access": "public"
35
- },
36
- "files": [
37
- "dist",
38
- "CHANGELOG.md"
39
- ],
40
- "scripts": {
41
- "build": "tsc -p tsconfig.json",
42
- "test": "node test/run-context-planner-tests.js"
43
- },
44
- "dependencies": {
45
- "glob": "^13.0.6",
46
- "ts-morph": "^21.0.0"
47
- },
48
- "devDependencies": {
49
- "@types/node": "^18.0.0",
50
- "typescript": "~5.3.3"
51
- }
52
- }
1
+ {
2
+ "name": "@getripple/core",
3
+ "version": "1.0.10",
4
+ "description": "Core engine for Ripple's local authorization gate: context planning, drift checks, and trust boundaries.",
5
+ "license": "MIT",
6
+ "type": "commonjs",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/raushankcode/ripple.git",
12
+ "directory": "packages/core"
13
+ },
14
+ "bugs": {
15
+ "url": "https://github.com/raushankcode/ripple/issues"
16
+ },
17
+ "homepage": "https://raushankcode.github.io/ripple/",
18
+ "keywords": [
19
+ "ai-agent",
20
+ "agent-workflow",
21
+ "codebase",
22
+ "architecture",
23
+ "context-planning",
24
+ "authorization-gate",
25
+ "trust-boundaries",
26
+ "static-analysis",
27
+ "typescript",
28
+ "javascript"
29
+ ],
30
+ "engines": {
31
+ "node": ">=18"
32
+ },
33
+ "publishConfig": {
34
+ "access": "public"
35
+ },
36
+ "files": [
37
+ "dist",
38
+ "CHANGELOG.md"
39
+ ],
40
+ "scripts": {
41
+ "build": "tsc -p tsconfig.json",
42
+ "test": "node test/run-context-planner-tests.js"
43
+ },
44
+ "dependencies": {
45
+ "glob": "^13.0.6",
46
+ "ts-morph": "^21.0.0"
47
+ },
48
+ "devDependencies": {
49
+ "@types/node": "^18.0.0",
50
+ "typescript": "~5.3.3"
51
+ }
52
+ }