@legioncodeinc/honeycomb 0.1.6 → 0.1.8
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/bundle/cli.js +102 -7
- package/daemon/dashboard-app.js +10 -10
- package/daemon/index.js +2279 -241
- package/embeddings/embed-daemon.js +1 -1
- package/harnesses/claude-code/.claude-plugin/plugin.json +1 -1
- package/harnesses/claude-code/bundle/capture.js +56 -3
- package/harnesses/claude-code/bundle/index.js +56 -3
- package/harnesses/claude-code/bundle/pre-tool-use.js +56 -3
- package/harnesses/claude-code/bundle/session-end.js +56 -3
- package/harnesses/claude-code/bundle/session-start.js +56 -3
- package/harnesses/codex/bundle/capture.js +22 -2
- package/harnesses/codex/bundle/index.js +22 -2
- package/harnesses/codex/bundle/pre-tool-use.js +22 -2
- package/harnesses/codex/bundle/session-start.js +22 -2
- package/harnesses/codex/package.json +1 -1
- package/harnesses/cursor/bundle/capture.js +22 -2
- package/harnesses/cursor/bundle/index.js +22 -2
- package/harnesses/cursor/bundle/pre-tool-use.js +22 -2
- package/harnesses/cursor/bundle/session-end.js +22 -2
- package/harnesses/cursor/bundle/session-start.js +22 -2
- package/harnesses/openclaw/dist/index.js +1 -1
- package/harnesses/openclaw/openclaw.plugin.json +1 -1
- package/harnesses/openclaw/package.json +1 -1
- package/mcp/bundle/server.js +1 -1
- package/package.json +1 -1
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
},
|
|
6
6
|
"metadata": {
|
|
7
7
|
"description": "Honeycomb — persistent memory daemon and thin harness clients for AI coding assistants",
|
|
8
|
-
"version": "0.1.
|
|
8
|
+
"version": "0.1.8"
|
|
9
9
|
},
|
|
10
10
|
"plugins": [
|
|
11
11
|
{
|
|
12
12
|
"name": "honeycomb",
|
|
13
13
|
"description": "Honeycomb Claude Code plugin — captures session activity and provides cross-session memory through the local daemon",
|
|
14
|
-
"version": "0.1.
|
|
14
|
+
"version": "0.1.8",
|
|
15
15
|
"source": "./harnesses/claude-code"
|
|
16
16
|
}
|
|
17
17
|
]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "honeycomb",
|
|
3
3
|
"description": "Honeycomb — a long-lived daemon plus thin clients for six coding harnesses, the unified honeycomb CLI, the MCP server, and the embed daemon",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.8",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Honeycomb"
|
|
7
7
|
},
|
package/bundle/cli.js
CHANGED
|
@@ -15981,7 +15981,17 @@ var StorageConfigSchema = external_exports.object({
|
|
|
15981
15981
|
/** Per-statement timeout, clamped non-negative. */
|
|
15982
15982
|
queryTimeoutMs: QueryTimeoutMs.default(DEFAULT_QUERY_TIMEOUT_MS),
|
|
15983
15983
|
/** SQL tracing gate (FR-6). Evaluated at call time, see client.ts. */
|
|
15984
|
-
traceSql: external_exports.boolean().default(false)
|
|
15984
|
+
traceSql: external_exports.boolean().default(false),
|
|
15985
|
+
/**
|
|
15986
|
+
* Query-meter persistence gate (PRD-062a). RESERVED, NOT YET IMPLEMENTED. The
|
|
15987
|
+
* query meter's default posture is in-memory + structured-log only and adds
|
|
15988
|
+
* ZERO DeepLake queries; persisting per-source counts to the existing
|
|
15989
|
+
* `telemetry_counters` tenant group is a later, separate concern and would add
|
|
15990
|
+
* write cost, so it is gated behind this flag. Today the flag is parsed and
|
|
15991
|
+
* carried but nothing reads it for behavior — wiring persistence is out of
|
|
15992
|
+
* scope for this sub-PRD (it must not make the meter itself a write-cost driver).
|
|
15993
|
+
*/
|
|
15994
|
+
queryMeterPersist: external_exports.boolean().default(false)
|
|
15985
15995
|
});
|
|
15986
15996
|
|
|
15987
15997
|
// dist/src/daemon/storage/converge.js
|
|
@@ -17225,7 +17235,7 @@ function buildAllowedProperties(input) {
|
|
|
17225
17235
|
}
|
|
17226
17236
|
var systemTelemetryClock = () => (/* @__PURE__ */ new Date()).toISOString();
|
|
17227
17237
|
var DEFAULT_EMIT_TIMEOUT_MS = 2e3;
|
|
17228
|
-
var HONEYCOMB_VERSION = true ? "0.1.
|
|
17238
|
+
var HONEYCOMB_VERSION = true ? "0.1.8" : "0.0.0-dev";
|
|
17229
17239
|
async function emitTelemetry(event, opts, deps = {}) {
|
|
17230
17240
|
const env = deps.env ?? process.env;
|
|
17231
17241
|
const key = deps.posthogKey ?? POSTHOG_KEY;
|
|
@@ -17253,8 +17263,8 @@ async function emitTelemetry(event, opts, deps = {}) {
|
|
|
17253
17263
|
if (isReported(state, event))
|
|
17254
17264
|
return { sent: false, skipped: "already_reported", properties };
|
|
17255
17265
|
const distinctId = state.installId;
|
|
17256
|
-
const
|
|
17257
|
-
if (!
|
|
17266
|
+
const ok2 = await postCapture(event, properties, distinctId, key, deps);
|
|
17267
|
+
if (!ok2)
|
|
17258
17268
|
return { sent: false, skipped: "send_failed", properties };
|
|
17259
17269
|
const clock = deps.clock ?? systemTelemetryClock;
|
|
17260
17270
|
const at = clock();
|
|
@@ -17368,7 +17378,7 @@ function renderGlassBoxText(view) {
|
|
|
17368
17378
|
// dist/src/shared/constants.js
|
|
17369
17379
|
var DAEMON_PORT = 3850;
|
|
17370
17380
|
var DAEMON_HOST = "127.0.0.1";
|
|
17371
|
-
var HONEYCOMB_VERSION2 = true ? "0.1.
|
|
17381
|
+
var HONEYCOMB_VERSION2 = true ? "0.1.8" : "0.0.0-dev";
|
|
17372
17382
|
var PRODUCT_SLUG = "honeycomb";
|
|
17373
17383
|
|
|
17374
17384
|
// dist/src/commands/install.js
|
|
@@ -18129,6 +18139,51 @@ var ROUTER_HISTORY_COLUMNS = Object.freeze([
|
|
|
18129
18139
|
{ name: "workspace_id", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18130
18140
|
{ name: "created_at", sql: "TEXT NOT NULL DEFAULT ''" }
|
|
18131
18141
|
]);
|
|
18142
|
+
var ROI_METRICS_COLUMNS = Object.freeze([
|
|
18143
|
+
{ name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18144
|
+
{ name: "session_id", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18145
|
+
{ name: "org_id", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18146
|
+
{ name: "workspace_id", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18147
|
+
{ name: "agent_id", sql: "TEXT NOT NULL DEFAULT 'default'" },
|
|
18148
|
+
{ name: "project_id", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18149
|
+
{ name: "team_id", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18150
|
+
// GATED: '' until a verified backend-token claim populates it (f-AC-6/f-AC-7).
|
|
18151
|
+
{ name: "user_id", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18152
|
+
{ name: "input_tokens", sql: "BIGINT NOT NULL DEFAULT 0" },
|
|
18153
|
+
{ name: "output_tokens", sql: "BIGINT NOT NULL DEFAULT 0" },
|
|
18154
|
+
{ name: "cache_read_tokens", sql: "BIGINT NOT NULL DEFAULT 0" },
|
|
18155
|
+
{ name: "cache_creation_tokens", sql: "BIGINT NOT NULL DEFAULT 0" },
|
|
18156
|
+
// MEASURED / MODELED / GROSS / INFRA money — BIGINT integer cents, never FLOAT (f-AC-4).
|
|
18157
|
+
{ name: "measured_cache_savings_cents", sql: "BIGINT NOT NULL DEFAULT 0" },
|
|
18158
|
+
{ name: "modeled_savings_cents", sql: "BIGINT NOT NULL DEFAULT 0" },
|
|
18159
|
+
{ name: "modeled_assumption_ref", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18160
|
+
{ name: "gross_cost_cents", sql: "BIGINT NOT NULL DEFAULT 0" },
|
|
18161
|
+
{ name: "infra_cost_cents", sql: "BIGINT NOT NULL DEFAULT 0" },
|
|
18162
|
+
// cost_basis ∈ {measured, allocated, none}; allocation_method '' unless allocated (f-AC-5).
|
|
18163
|
+
{ name: "cost_basis", sql: "TEXT NOT NULL DEFAULT 'none'" },
|
|
18164
|
+
{ name: "allocation_method", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18165
|
+
{ name: "price_ref", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18166
|
+
{ name: "period_start", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18167
|
+
{ name: "period_end", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18168
|
+
{ name: "created_at", sql: "TEXT NOT NULL DEFAULT ''" }
|
|
18169
|
+
]);
|
|
18170
|
+
var ROI_COST_BASES = Object.freeze(["measured", "allocated", "none"]);
|
|
18171
|
+
var TEAMS_COLUMNS = Object.freeze([
|
|
18172
|
+
{ name: "id", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18173
|
+
{ name: "team_id", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18174
|
+
{ name: "team_name", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18175
|
+
// 'agent' rows work today; 'user' rows inert until user_id verified.
|
|
18176
|
+
{ name: "member_type", sql: "TEXT NOT NULL DEFAULT 'agent'" },
|
|
18177
|
+
{ name: "member_id", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18178
|
+
{ name: "role", sql: "TEXT NOT NULL DEFAULT 'member'" },
|
|
18179
|
+
{ name: "active", sql: "BIGINT NOT NULL DEFAULT 1" },
|
|
18180
|
+
{ name: "org_id", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18181
|
+
{ name: "workspace_id", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18182
|
+
{ name: "version", sql: "BIGINT NOT NULL DEFAULT 0" },
|
|
18183
|
+
{ name: "created_at", sql: "TEXT NOT NULL DEFAULT ''" },
|
|
18184
|
+
{ name: "updated_at", sql: "TEXT NOT NULL DEFAULT ''" }
|
|
18185
|
+
]);
|
|
18186
|
+
var TEAM_MEMBER_TYPES = Object.freeze(["agent", "user"]);
|
|
18132
18187
|
var TENANCY_TABLES = defineGroup([
|
|
18133
18188
|
{
|
|
18134
18189
|
name: "agents",
|
|
@@ -18167,6 +18222,25 @@ var TENANCY_TABLES = defineGroup([
|
|
|
18167
18222
|
pattern: "append-only",
|
|
18168
18223
|
embeddingColumns: [],
|
|
18169
18224
|
scope: "tenant"
|
|
18225
|
+
},
|
|
18226
|
+
{
|
|
18227
|
+
// PRD-060f (f-AC-1/f-AC-2): the shared spend ledger. APPEND-ONLY — one
|
|
18228
|
+
// immutable row per session, a re-price APPENDs a new row (new price_ref),
|
|
18229
|
+
// NEVER an in-place UPDATE; the canonical row is MAX(created_at) per session.
|
|
18230
|
+
name: "roi_metrics",
|
|
18231
|
+
columns: ROI_METRICS_COLUMNS,
|
|
18232
|
+
pattern: "append-only",
|
|
18233
|
+
embeddingColumns: [],
|
|
18234
|
+
scope: "tenant"
|
|
18235
|
+
},
|
|
18236
|
+
{
|
|
18237
|
+
// PRD-060f (f-AC-8): the roster. VERSION-BUMPED — one row per (team, member),
|
|
18238
|
+
// an edit APPENDs version N+1, read ORDER BY version DESC (same as api_keys).
|
|
18239
|
+
name: "teams",
|
|
18240
|
+
columns: TEAMS_COLUMNS,
|
|
18241
|
+
pattern: "version-bumped",
|
|
18242
|
+
embeddingColumns: [],
|
|
18243
|
+
scope: "tenant"
|
|
18170
18244
|
}
|
|
18171
18245
|
]);
|
|
18172
18246
|
var SCRYPT_PARAMS = Object.freeze({ N: 16384, r: 8, p: 1, keyLen: 32 });
|
|
@@ -19826,8 +19900,8 @@ function probeCli() {
|
|
|
19826
19900
|
function probeCursorAgent() {
|
|
19827
19901
|
try {
|
|
19828
19902
|
const probe = process.platform === "win32" ? spawnSync2("where", ["cursor-agent"], { stdio: "ignore", windowsHide: true }) : spawnSync2("which", ["cursor-agent"], { stdio: "ignore", windowsHide: true });
|
|
19829
|
-
const
|
|
19830
|
-
return
|
|
19903
|
+
const ok2 = probe.status === 0;
|
|
19904
|
+
return ok2 ? { ok: true, detail: "on PATH" } : { ok: false, detail: "cursor-agent not on PATH" };
|
|
19831
19905
|
} catch (err) {
|
|
19832
19906
|
return { ok: false, detail: err instanceof Error ? err.message : "probe failed" };
|
|
19833
19907
|
}
|
|
@@ -19893,6 +19967,27 @@ var EMPTY_DASHBOARD_DATA = Object.freeze({
|
|
|
19893
19967
|
rules: { rules: [] },
|
|
19894
19968
|
skillSync: { skills: [] }
|
|
19895
19969
|
});
|
|
19970
|
+
var EMPTY_ROI_VIEW = Object.freeze({
|
|
19971
|
+
savings: {
|
|
19972
|
+
status: "absent",
|
|
19973
|
+
measuredCents: 0,
|
|
19974
|
+
modeledCents: 0,
|
|
19975
|
+
assumption: { kind: "", assumptionText: "", signedOff: false },
|
|
19976
|
+
blendedCentsPerMtok: null
|
|
19977
|
+
},
|
|
19978
|
+
infra: { status: "absent", cents: 0, costBasis: "none" },
|
|
19979
|
+
pollination: { status: "absent", cents: 0, lines: [] },
|
|
19980
|
+
net: { status: "absent", computed: false, netCents: 0, modeled: true, costBasis: "none" },
|
|
19981
|
+
rollups: [],
|
|
19982
|
+
perUserAvailable: false,
|
|
19983
|
+
scopedAcrossDevices: false,
|
|
19984
|
+
ratesAsOf: ""
|
|
19985
|
+
});
|
|
19986
|
+
var EMPTY_ROI_TREND = Object.freeze({
|
|
19987
|
+
status: "absent",
|
|
19988
|
+
series: [],
|
|
19989
|
+
startedAt: ""
|
|
19990
|
+
});
|
|
19896
19991
|
|
|
19897
19992
|
// dist/src/dashboard/views.js
|
|
19898
19993
|
var GRAPH_BUILD_PROMPT = "Run `honeycomb graph build` to build the codebase graph.";
|