@relayplane/proxy 1.8.8 → 1.8.9
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.
- package/dist/cli.js +0 -0
- package/dist/signup-nudge.d.ts +45 -0
- package/dist/signup-nudge.d.ts.map +1 -0
- package/dist/signup-nudge.js +155 -0
- package/dist/signup-nudge.js.map +1 -0
- package/dist/standalone-proxy.d.ts.map +1 -1
- package/dist/standalone-proxy.js +8 -0
- package/dist/standalone-proxy.js.map +1 -1
- package/package.json +1 -1
- package/dist/osmosis-store.d.ts +0 -33
- package/dist/osmosis-store.d.ts.map +0 -1
- package/dist/osmosis-store.js +0 -181
- package/dist/osmosis-store.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@relayplane/proxy",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.9",
|
|
4
4
|
"description": "Open source cost intelligence proxy for AI agents. Cut LLM costs ~80% with smart model routing. Dashboard, policy engine, 11 providers. MIT licensed.",
|
|
5
5
|
"homepage": "https://relayplane.com",
|
|
6
6
|
"repository": {
|
package/dist/osmosis-store.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Osmosis Phase 1 — KnowledgeAtom capture
|
|
3
|
-
*
|
|
4
|
-
* Stores per-request atoms in ~/.relayplane/osmosis.db (SQLite via better-sqlite3).
|
|
5
|
-
* Falls back to ~/.relayplane/osmosis.jsonl if SQLite is unavailable.
|
|
6
|
-
*
|
|
7
|
-
* All writes are fire-and-forget; errors are silently swallowed.
|
|
8
|
-
*/
|
|
9
|
-
export interface SuccessAtom {
|
|
10
|
-
type: 'success';
|
|
11
|
-
model: string;
|
|
12
|
-
taskType: string;
|
|
13
|
-
latencyMs: number;
|
|
14
|
-
inputTokens: number;
|
|
15
|
-
outputTokens: number;
|
|
16
|
-
timestamp: number;
|
|
17
|
-
}
|
|
18
|
-
export interface FailureAtom {
|
|
19
|
-
type: 'failure';
|
|
20
|
-
errorType: string;
|
|
21
|
-
model: string;
|
|
22
|
-
fallbackTaken: boolean;
|
|
23
|
-
timestamp: number;
|
|
24
|
-
}
|
|
25
|
-
export type KnowledgeAtom = SuccessAtom | FailureAtom;
|
|
26
|
-
/**
|
|
27
|
-
* Capture a KnowledgeAtom (fire-and-forget).
|
|
28
|
-
* Never throws. Writes to SQLite; falls back to JSONL.
|
|
29
|
-
*/
|
|
30
|
-
export declare function captureAtom(atom: KnowledgeAtom): void;
|
|
31
|
-
/** Exposed for testing — reset singleton state. */
|
|
32
|
-
export declare function _resetStore(): void;
|
|
33
|
-
//# sourceMappingURL=osmosis-store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"osmosis-store.d.ts","sourceRoot":"","sources":["../src/osmosis-store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;AA+EtD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAqCrD;AAED,mDAAmD;AACnD,wBAAgB,WAAW,IAAI,IAAI,CAOlC"}
|
package/dist/osmosis-store.js
DELETED
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Osmosis Phase 1 — KnowledgeAtom capture
|
|
4
|
-
*
|
|
5
|
-
* Stores per-request atoms in ~/.relayplane/osmosis.db (SQLite via better-sqlite3).
|
|
6
|
-
* Falls back to ~/.relayplane/osmosis.jsonl if SQLite is unavailable.
|
|
7
|
-
*
|
|
8
|
-
* All writes are fire-and-forget; errors are silently swallowed.
|
|
9
|
-
*/
|
|
10
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
-
}
|
|
16
|
-
Object.defineProperty(o, k2, desc);
|
|
17
|
-
}) : (function(o, m, k, k2) {
|
|
18
|
-
if (k2 === undefined) k2 = k;
|
|
19
|
-
o[k2] = m[k];
|
|
20
|
-
}));
|
|
21
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
22
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
23
|
-
}) : function(o, v) {
|
|
24
|
-
o["default"] = v;
|
|
25
|
-
});
|
|
26
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
27
|
-
var ownKeys = function(o) {
|
|
28
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
29
|
-
var ar = [];
|
|
30
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
31
|
-
return ar;
|
|
32
|
-
};
|
|
33
|
-
return ownKeys(o);
|
|
34
|
-
};
|
|
35
|
-
return function (mod) {
|
|
36
|
-
if (mod && mod.__esModule) return mod;
|
|
37
|
-
var result = {};
|
|
38
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
39
|
-
__setModuleDefault(result, mod);
|
|
40
|
-
return result;
|
|
41
|
-
};
|
|
42
|
-
})();
|
|
43
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
-
exports.captureAtom = captureAtom;
|
|
45
|
-
exports._resetStore = _resetStore;
|
|
46
|
-
const fs = __importStar(require("node:fs"));
|
|
47
|
-
const os = __importStar(require("node:os"));
|
|
48
|
-
const path = __importStar(require("node:path"));
|
|
49
|
-
const SCHEMA_SQL = `
|
|
50
|
-
CREATE TABLE IF NOT EXISTS knowledge_atoms (
|
|
51
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
52
|
-
type TEXT NOT NULL,
|
|
53
|
-
model TEXT,
|
|
54
|
-
task_type TEXT,
|
|
55
|
-
latency_ms INTEGER,
|
|
56
|
-
input_tokens INTEGER,
|
|
57
|
-
output_tokens INTEGER,
|
|
58
|
-
error_type TEXT,
|
|
59
|
-
fallback_taken INTEGER,
|
|
60
|
-
timestamp INTEGER NOT NULL
|
|
61
|
-
);
|
|
62
|
-
`;
|
|
63
|
-
/** Lazy-initialised SQLite database handle, or null if unavailable. */
|
|
64
|
-
let _db = undefined;
|
|
65
|
-
let _jsonlPath = null;
|
|
66
|
-
let _insertStmt = null;
|
|
67
|
-
function getRelayplaneDir() {
|
|
68
|
-
// RELAYPLANE_HOME_OVERRIDE is used in tests to avoid writing to ~/.relayplane
|
|
69
|
-
const override = process.env['RELAYPLANE_HOME_OVERRIDE'];
|
|
70
|
-
const base = override ?? os.homedir();
|
|
71
|
-
return path.join(base, '.relayplane');
|
|
72
|
-
}
|
|
73
|
-
function ensureDir(dir) {
|
|
74
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
75
|
-
}
|
|
76
|
-
function initDb() {
|
|
77
|
-
try {
|
|
78
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
79
|
-
const Database = require('better-sqlite3');
|
|
80
|
-
const dir = getRelayplaneDir();
|
|
81
|
-
ensureDir(dir);
|
|
82
|
-
const dbPath = path.join(dir, 'osmosis.db');
|
|
83
|
-
const db = new Database(dbPath);
|
|
84
|
-
db.pragma('journal_mode = WAL');
|
|
85
|
-
db.exec(SCHEMA_SQL);
|
|
86
|
-
return db;
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
function getDb() {
|
|
93
|
-
if (_db !== undefined)
|
|
94
|
-
return _db;
|
|
95
|
-
_db = initDb();
|
|
96
|
-
if (_db) {
|
|
97
|
-
_insertStmt = _db.prepare(`
|
|
98
|
-
INSERT INTO knowledge_atoms
|
|
99
|
-
(type, model, task_type, latency_ms, input_tokens, output_tokens, error_type, fallback_taken, timestamp)
|
|
100
|
-
VALUES
|
|
101
|
-
(@type, @model, @task_type, @latency_ms, @input_tokens, @output_tokens, @error_type, @fallback_taken, @timestamp)
|
|
102
|
-
`);
|
|
103
|
-
}
|
|
104
|
-
return _db;
|
|
105
|
-
}
|
|
106
|
-
function getJsonlPath() {
|
|
107
|
-
if (_jsonlPath)
|
|
108
|
-
return _jsonlPath;
|
|
109
|
-
const dir = getRelayplaneDir();
|
|
110
|
-
ensureDir(dir);
|
|
111
|
-
_jsonlPath = path.join(dir, 'osmosis.jsonl');
|
|
112
|
-
return _jsonlPath;
|
|
113
|
-
}
|
|
114
|
-
function writeToJsonl(atom) {
|
|
115
|
-
try {
|
|
116
|
-
fs.appendFileSync(getJsonlPath(), JSON.stringify(atom) + '\n', 'utf-8');
|
|
117
|
-
}
|
|
118
|
-
catch {
|
|
119
|
-
// best-effort
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Capture a KnowledgeAtom (fire-and-forget).
|
|
124
|
-
* Never throws. Writes to SQLite; falls back to JSONL.
|
|
125
|
-
*/
|
|
126
|
-
function captureAtom(atom) {
|
|
127
|
-
try {
|
|
128
|
-
const db = getDb();
|
|
129
|
-
if (db && _insertStmt) {
|
|
130
|
-
if (atom.type === 'success') {
|
|
131
|
-
_insertStmt.run({
|
|
132
|
-
type: atom.type,
|
|
133
|
-
model: atom.model ?? null,
|
|
134
|
-
task_type: atom.taskType ?? null,
|
|
135
|
-
latency_ms: atom.latencyMs,
|
|
136
|
-
input_tokens: atom.inputTokens,
|
|
137
|
-
output_tokens: atom.outputTokens,
|
|
138
|
-
error_type: null,
|
|
139
|
-
fallback_taken: null,
|
|
140
|
-
timestamp: atom.timestamp,
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
_insertStmt.run({
|
|
145
|
-
type: atom.type,
|
|
146
|
-
model: atom.model ?? null,
|
|
147
|
-
task_type: null,
|
|
148
|
-
latency_ms: null,
|
|
149
|
-
input_tokens: null,
|
|
150
|
-
output_tokens: null,
|
|
151
|
-
error_type: atom.errorType ?? null,
|
|
152
|
-
fallback_taken: atom.fallbackTaken ? 1 : 0,
|
|
153
|
-
timestamp: atom.timestamp,
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
// SQLite unavailable — fall back to JSONL
|
|
159
|
-
writeToJsonl(atom);
|
|
160
|
-
}
|
|
161
|
-
catch {
|
|
162
|
-
// best-effort fallback
|
|
163
|
-
try {
|
|
164
|
-
writeToJsonl(atom);
|
|
165
|
-
}
|
|
166
|
-
catch { /* ignore */ }
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
/** Exposed for testing — reset singleton state. */
|
|
170
|
-
function _resetStore() {
|
|
171
|
-
if (_db) {
|
|
172
|
-
try {
|
|
173
|
-
_db.close();
|
|
174
|
-
}
|
|
175
|
-
catch { /* ignore */ }
|
|
176
|
-
}
|
|
177
|
-
_db = undefined;
|
|
178
|
-
_insertStmt = null;
|
|
179
|
-
_jsonlPath = null;
|
|
180
|
-
}
|
|
181
|
-
//# sourceMappingURL=osmosis-store.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"osmosis-store.js","sourceRoot":"","sources":["../src/osmosis-store.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2GH,kCAqCC;AAGD,kCAOC;AAxJD,4CAA8B;AAC9B,4CAA8B;AAC9B,gDAAkC;AAsBlC,MAAM,UAAU,GAAG;;;;;;;;;;;;;CAalB,CAAC;AAEF,uEAAuE;AACvE,IAAI,GAAG,GAAyD,SAAS,CAAC;AAC1E,IAAI,UAAU,GAAkB,IAAI,CAAC;AACrC,IAAI,WAAW,GAA8C,IAAI,CAAC;AAElE,SAAS,gBAAgB;IACvB,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,QAAQ,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,MAAM;IACb,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAoC,CAAC;QAC9E,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC5C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAChC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpB,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,KAAK;IACZ,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,GAAG,GAAG,MAAM,EAAE,CAAC;IACf,IAAI,GAAG,EAAE,CAAC;QACR,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC;;;;;KAKzB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY;IACnB,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,SAAS,CAAC,GAAG,CAAC,CAAC;IACf,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,IAAmB;IACvC,IAAI,CAAC;QACH,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,IAAmB;IAC7C,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,WAAW,CAAC,GAAG,CAAC;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;oBACzB,SAAS,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;oBAChC,UAAU,EAAE,IAAI,CAAC,SAAS;oBAC1B,YAAY,EAAE,IAAI,CAAC,WAAW;oBAC9B,aAAa,EAAE,IAAI,CAAC,YAAY;oBAChC,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;oBACpB,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC1B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,GAAG,CAAC;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;oBACzB,SAAS,EAAE,IAAI;oBACf,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,IAAI;oBAClB,aAAa,EAAE,IAAI;oBACnB,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;oBAClC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1C,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC1B,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QACD,0CAA0C;QAC1C,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,uBAAuB;QACvB,IAAI,CAAC;YAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,mDAAmD;AACnD,SAAgB,WAAW;IACzB,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,CAAC;YAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IACD,GAAG,GAAG,SAAS,CAAC;IAChB,WAAW,GAAG,IAAI,CAAC;IACnB,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC"}
|