hippo-memory 1.3.2 → 1.4.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.
- package/README.md +7 -0
- package/dist/connectors/slack/transform.d.ts +9 -2
- package/dist/connectors/slack/transform.d.ts.map +1 -1
- package/dist/connectors/slack/transform.js +16 -3
- package/dist/connectors/slack/transform.js.map +1 -1
- package/dist/connectors/slack/types.d.ts +6 -0
- package/dist/connectors/slack/types.d.ts.map +1 -1
- package/dist/connectors/slack/types.js.map +1 -1
- package/dist/src/connectors/slack/transform.js +16 -3
- package/dist/src/connectors/slack/transform.js.map +1 -1
- package/dist/src/connectors/slack/types.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
- package/extensions/openclaw-plugin/package.json +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -85,6 +85,13 @@ hippo recall "data pipeline issues" --budget 2000
|
|
|
85
85
|
|
|
86
86
|
---
|
|
87
87
|
|
|
88
|
+
### What's new in v1.4.0
|
|
89
|
+
|
|
90
|
+
- **First repo-level CI workflow + provenance gate enforced on every PR.** `.github/workflows/ci.yml` runs build + 1237 vitest cases + a CI-only seed that ingests one GitHub webhook + one Slack message through the real connectors then runs `hippo provenance --strict`. Drop a connector's owner stamp and the PR fails. Read-only permissions, 25-minute timeout, uploads `provenance-coverage.json` as a workflow artifact.
|
|
91
|
+
- **Slack `bot_message` provenance gap closed.** `slack/transform.ts` shipped `owner: undefined` for userless bot messages, which would have failed any future strict gate. Now derives `owner: bot:<bot_id>` (or `bot:unknown` as a sentinel). Skipping userless messages was rejected during plan review because `slack/ingest.ts:54-65` would have silently dropped existing bot ingestion via the "skipped but seen" path.
|
|
92
|
+
- **`SlackMessageEvent.bot_id` added** as an optional field on the public type.
|
|
93
|
+
- **Slack provenance parity test** mirrors `tests/github-provenance-parity.test.ts` and covers user, `bot_message`, threaded replies, and `message_changed` edits.
|
|
94
|
+
|
|
88
95
|
### What's new in v1.3.2
|
|
89
96
|
|
|
90
97
|
- **Hotfix for v1.3.1.** Codex round 3 + senior code reviewer caught residual bugs in v1.3.1's own fix.
|
|
@@ -15,8 +15,15 @@ export interface TransformInput {
|
|
|
15
15
|
* - kind is the literal 'raw' (E1.x connector boundary, see src/importers.ts).
|
|
16
16
|
* - artifact_ref format MUST be exactly `slack://${teamId}/${channelId}/${ts}`;
|
|
17
17
|
* the deletion path (Task 9) looks up by this string.
|
|
18
|
-
* - owner is
|
|
19
|
-
*
|
|
18
|
+
* - owner is non-null whenever a row is written. Required by the v0.40.0
|
|
19
|
+
* provenance gate (`hippo provenance --strict`).
|
|
20
|
+
* - `user:<slack_user_id>` when the event carries a `user`.
|
|
21
|
+
* - `bot:<bot_id>` for the `bot_message` subtype (or any userless+text event
|
|
22
|
+
* that supplies bot_id).
|
|
23
|
+
* - `bot:unknown` only as a last-resort sentinel so the gate never sees null.
|
|
24
|
+
* Codex round 1 P1: skipping userless messages instead of stamping a bot
|
|
25
|
+
* owner would silently drop existing bot ingestion via the
|
|
26
|
+
* "skipped but seen" path at ingest.ts:54-65.
|
|
20
27
|
*/
|
|
21
28
|
export declare function messageToRememberOpts(input: TransformInput): RememberOpts | null;
|
|
22
29
|
//# sourceMappingURL=transform.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/connectors/slack/transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/connectors/slack/transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,IAAI,CAwBhF"}
|
|
@@ -8,18 +8,31 @@ import { scopeFromChannel } from './scope.js';
|
|
|
8
8
|
* - kind is the literal 'raw' (E1.x connector boundary, see src/importers.ts).
|
|
9
9
|
* - artifact_ref format MUST be exactly `slack://${teamId}/${channelId}/${ts}`;
|
|
10
10
|
* the deletion path (Task 9) looks up by this string.
|
|
11
|
-
* - owner is
|
|
12
|
-
*
|
|
11
|
+
* - owner is non-null whenever a row is written. Required by the v0.40.0
|
|
12
|
+
* provenance gate (`hippo provenance --strict`).
|
|
13
|
+
* - `user:<slack_user_id>` when the event carries a `user`.
|
|
14
|
+
* - `bot:<bot_id>` for the `bot_message` subtype (or any userless+text event
|
|
15
|
+
* that supplies bot_id).
|
|
16
|
+
* - `bot:unknown` only as a last-resort sentinel so the gate never sees null.
|
|
17
|
+
* Codex round 1 P1: skipping userless messages instead of stamping a bot
|
|
18
|
+
* owner would silently drop existing bot ingestion via the
|
|
19
|
+
* "skipped but seen" path at ingest.ts:54-65.
|
|
13
20
|
*/
|
|
14
21
|
export function messageToRememberOpts(input) {
|
|
15
22
|
const text = input.message.text?.trim();
|
|
16
23
|
if (!text)
|
|
17
24
|
return null;
|
|
18
25
|
const artifactRef = `slack://${input.teamId}/${input.channel.id}/${input.message.ts}`;
|
|
26
|
+
const owner = input.message.user
|
|
27
|
+
? `user:${input.message.user}`
|
|
28
|
+
: input.message.bot_id
|
|
29
|
+
? `bot:${input.message.bot_id}`
|
|
30
|
+
: 'bot:unknown';
|
|
19
31
|
const tags = [
|
|
20
32
|
'source:slack',
|
|
21
33
|
`channel:${input.channel.id}`,
|
|
22
34
|
...(input.message.user ? [`user:${input.message.user}`] : []),
|
|
35
|
+
...(input.message.bot_id ? [`bot:${input.message.bot_id}`] : []),
|
|
23
36
|
...(input.message.thread_ts ? [`thread:${input.message.thread_ts}`] : []),
|
|
24
37
|
];
|
|
25
38
|
return {
|
|
@@ -27,7 +40,7 @@ export function messageToRememberOpts(input) {
|
|
|
27
40
|
kind: 'raw',
|
|
28
41
|
scope: scopeFromChannel(input.channel),
|
|
29
42
|
artifactRef,
|
|
30
|
-
owner
|
|
43
|
+
owner,
|
|
31
44
|
tags,
|
|
32
45
|
};
|
|
33
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/connectors/slack/transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAShE
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/connectors/slack/transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAShE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAqB;IACzD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,WAAW,GAAG,WAAW,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;IACtF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI;QAC9B,CAAC,CAAC,QAAQ,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;QAC9B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;YACpB,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;YAC/B,CAAC,CAAC,aAAa,CAAC;IACpB,MAAM,IAAI,GAAG;QACX,cAAc;QACd,WAAW,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;QAC7B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;IACF,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;QACtC,WAAW;QACX,KAAK;QACL,IAAI;KACL,CAAC;AACJ,CAAC"}
|
|
@@ -16,6 +16,12 @@ export interface SlackMessageEvent {
|
|
|
16
16
|
text?: string;
|
|
17
17
|
ts: string;
|
|
18
18
|
thread_ts?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Slack `bot_message` subtype carries `bot_id` instead of `user`. The
|
|
21
|
+
* v0.40.0 provenance gate requires a non-null `owner`, so transform.ts
|
|
22
|
+
* derives `owner: bot:<bot_id>` when `user` is absent.
|
|
23
|
+
*/
|
|
24
|
+
bot_id?: string;
|
|
19
25
|
/** Present on subtype='message_deleted'. */
|
|
20
26
|
deleted_ts?: string;
|
|
21
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/connectors/slack/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,cAAc,GAAG,MAAM,CAAC;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,iBAAiB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CACnE;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;AAErE,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,kBAAkB,CAYxE;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,iBAAiB,CAItE"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/connectors/slack/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,cAAc,GAAG,MAAM,CAAC;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,iBAAiB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CACnE;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;AAErE,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,kBAAkB,CAYxE;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,iBAAiB,CAItE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/connectors/slack/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/connectors/slack/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqCH,MAAM,UAAU,oBAAoB,CAAC,CAAU;IAC7C,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,gBAAgB;QAC3B,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;QAC7B,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAC9B,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;QAChC,CAAC,CAAC,CAAC,CAAC,KAAK;QACT,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;QAC3B,OAAQ,CAAC,CAAC,KAAiC,CAAC,IAAI,KAAK,QAAQ,CAC9D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAU;IAC5C,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,OAAO,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC;AAC3F,CAAC"}
|
|
@@ -8,18 +8,31 @@ import { scopeFromChannel } from './scope.js';
|
|
|
8
8
|
* - kind is the literal 'raw' (E1.x connector boundary, see src/importers.ts).
|
|
9
9
|
* - artifact_ref format MUST be exactly `slack://${teamId}/${channelId}/${ts}`;
|
|
10
10
|
* the deletion path (Task 9) looks up by this string.
|
|
11
|
-
* - owner is
|
|
12
|
-
*
|
|
11
|
+
* - owner is non-null whenever a row is written. Required by the v0.40.0
|
|
12
|
+
* provenance gate (`hippo provenance --strict`).
|
|
13
|
+
* - `user:<slack_user_id>` when the event carries a `user`.
|
|
14
|
+
* - `bot:<bot_id>` for the `bot_message` subtype (or any userless+text event
|
|
15
|
+
* that supplies bot_id).
|
|
16
|
+
* - `bot:unknown` only as a last-resort sentinel so the gate never sees null.
|
|
17
|
+
* Codex round 1 P1: skipping userless messages instead of stamping a bot
|
|
18
|
+
* owner would silently drop existing bot ingestion via the
|
|
19
|
+
* "skipped but seen" path at ingest.ts:54-65.
|
|
13
20
|
*/
|
|
14
21
|
export function messageToRememberOpts(input) {
|
|
15
22
|
const text = input.message.text?.trim();
|
|
16
23
|
if (!text)
|
|
17
24
|
return null;
|
|
18
25
|
const artifactRef = `slack://${input.teamId}/${input.channel.id}/${input.message.ts}`;
|
|
26
|
+
const owner = input.message.user
|
|
27
|
+
? `user:${input.message.user}`
|
|
28
|
+
: input.message.bot_id
|
|
29
|
+
? `bot:${input.message.bot_id}`
|
|
30
|
+
: 'bot:unknown';
|
|
19
31
|
const tags = [
|
|
20
32
|
'source:slack',
|
|
21
33
|
`channel:${input.channel.id}`,
|
|
22
34
|
...(input.message.user ? [`user:${input.message.user}`] : []),
|
|
35
|
+
...(input.message.bot_id ? [`bot:${input.message.bot_id}`] : []),
|
|
23
36
|
...(input.message.thread_ts ? [`thread:${input.message.thread_ts}`] : []),
|
|
24
37
|
];
|
|
25
38
|
return {
|
|
@@ -27,7 +40,7 @@ export function messageToRememberOpts(input) {
|
|
|
27
40
|
kind: 'raw',
|
|
28
41
|
scope: scopeFromChannel(input.channel),
|
|
29
42
|
artifactRef,
|
|
30
|
-
owner
|
|
43
|
+
owner,
|
|
31
44
|
tags,
|
|
32
45
|
};
|
|
33
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/connectors/slack/transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAShE
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/connectors/slack/transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAShE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAqB;IACzD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,WAAW,GAAG,WAAW,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;IACtF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI;QAC9B,CAAC,CAAC,QAAQ,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;QAC9B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;YACpB,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;YAC/B,CAAC,CAAC,aAAa,CAAC;IACpB,MAAM,IAAI,GAAG;QACX,cAAc;QACd,WAAW,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;QAC7B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;IACF,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;QACtC,WAAW;QACX,KAAK;QACL,IAAI;KACL,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/connectors/slack/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/connectors/slack/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqCH,MAAM,UAAU,oBAAoB,CAAC,CAAU;IAC7C,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,gBAAgB;QAC3B,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;QAC7B,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAC9B,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;QAChC,CAAC,CAAC,CAAC,CAAC,KAAK;QACT,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;QAC3B,OAAQ,CAAC,CAAC,KAAiC,CAAC,IAAI,KAAK,QAAQ,CAC9D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAU;IAC5C,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,OAAO,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC;AAC3F,CAAC"}
|
package/dist/src/version.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* an ESM `import` can resolve cleanly, and a hardcoded constant survives
|
|
17
17
|
* any packager that drops .json files.
|
|
18
18
|
*/
|
|
19
|
-
export const PACKAGE_VERSION = '1.
|
|
19
|
+
export const PACKAGE_VERSION = '1.4.0';
|
|
20
20
|
// Bump on every release alongside the 4 manifests + lockfile.
|
|
21
21
|
/**
|
|
22
22
|
* Compare two semver strings. Returns positive if a > b, 0 if equal, negative
|
package/dist/version.d.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* an ESM `import` can resolve cleanly, and a hardcoded constant survives
|
|
17
17
|
* any packager that drops .json files.
|
|
18
18
|
*/
|
|
19
|
-
export declare const PACKAGE_VERSION = "1.
|
|
19
|
+
export declare const PACKAGE_VERSION = "1.4.0";
|
|
20
20
|
/**
|
|
21
21
|
* Compare two semver strings. Returns positive if a > b, 0 if equal, negative
|
|
22
22
|
* if a < b.
|
package/dist/version.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* an ESM `import` can resolve cleanly, and a hardcoded constant survives
|
|
17
17
|
* any packager that drops .json files.
|
|
18
18
|
*/
|
|
19
|
-
export const PACKAGE_VERSION = '1.
|
|
19
|
+
export const PACKAGE_VERSION = '1.4.0';
|
|
20
20
|
// Bump on every release alongside the 4 manifests + lockfile.
|
|
21
21
|
/**
|
|
22
22
|
* Compare two semver strings. Returns positive if a > b, 0 if equal, negative
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "hippo-memory",
|
|
3
3
|
"name": "Hippo Memory",
|
|
4
4
|
"description": "Biologically-inspired memory for AI agents. Decay by default, retrieval strengthening, sleep consolidation.",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.4.0",
|
|
6
6
|
"configSchema": {
|
|
7
7
|
"type": "object",
|
|
8
8
|
"additionalProperties": false,
|