apiary-memory 0.2.0__py3-none-any.whl

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.
hive_mcp/tools.json ADDED
@@ -0,0 +1,211 @@
1
+ {
2
+ "$comment": "OFFLINE FALLBACK SNAPSHOT of the tool surface - not a second source of truth. When the Hive is reachable, tools/list is relayed from the backend. This file mirrors the BACKEND, which is why it carries recall.query_vector and propose.vector although the local store has no embedder: stdio.py narrows the served list per engine at request time (LOCAL_UNSUPPORTED_ARGUMENTS for inputs, LOCAL_PROPERTY_TEXT for wording), so a machine the local engine serves is never told it can send an embedding, and never told its text query is ranked semantically. Defaults declared here are the defaults BOTH engines apply: store.py holds each one as a named constant and tests check the two against each other. Directory crawlers index the local path, so this file must stay both truthful and high-scoring (Glama TDQS). tests/test_bridge.py enforces agreement with tests/backend_tools_snapshot.json and enforces the runtime narrowing.",
3
+ "tools": [
4
+ {
5
+ "name": "recall",
6
+ "title": "Recall memory",
7
+ "description": "Search the human's confirmed memory by natural-language query and return the closest stored entries. Use this to find what was previously decided, recorded, or agreed. Do not use it at session start when you have no query yet - use get_context instead. Do not use it to review entries still awaiting approval - use manage with action list_pending. Annotations already declare this read-only, so this text covers what they cannot: results come from the confirmed store only, private vaults are omitted for agents not permitted to read them, and an empty list means no match rather than no memory.",
8
+ "annotations": {
9
+ "readOnlyHint": true,
10
+ "destructiveHint": false,
11
+ "idempotentHint": true,
12
+ "openWorldHint": false
13
+ },
14
+ "inputSchema": {
15
+ "type": "object",
16
+ "properties": {
17
+ "query": {
18
+ "type": "string",
19
+ "description": "Natural-language search text, e.g. 'what did we decide about the pricing page'. Ranked by the Hive's index of words and character bigrams, with synonym expansion and a recency nudge; supply query_vector to rank by meaning instead."
20
+ },
21
+ "limit": {
22
+ "type": "integer",
23
+ "description": "Maximum number of memories to return. Omit for the server default.",
24
+ "default": 10
25
+ },
26
+ "compact": {
27
+ "type": "boolean",
28
+ "description": "Return trimmed records (id, title, snippet) instead of full bodies. Saves tokens when you only need to know whether something exists.",
29
+ "default": true
30
+ },
31
+ "vaults": {
32
+ "type": "array",
33
+ "items": { "type": "string" },
34
+ "description": "Narrow the search to these vault names. Omit to search every vault this agent may read. Naming a vault the agent may not read is not an error - it returns nothing from that vault."
35
+ },
36
+ "query_vector": {
37
+ "type": "array",
38
+ "items": { "type": "number" },
39
+ "description": "Precomputed embedding. When supplied, recall ranks by vector similarity and ignores 'query' text matching."
40
+ }
41
+ },
42
+ "required": ["query"]
43
+ }
44
+ },
45
+ {
46
+ "name": "propose",
47
+ "title": "Propose a memory",
48
+ "description": "Submit a memory for the human to approve. It lands in a pending queue and changes no confirmed memory. Use it when the human says to remember something, or when a decision is reached that will still matter later. Do not use it as a scratchpad for transient reasoning or for data you merely fetched. This tool cannot confirm its own writes: the entry stays pending until the human accepts it inside their own Hive, so a success response means queued, not stored. Supply client_id to make retries idempotent.",
49
+ "annotations": {
50
+ "readOnlyHint": false,
51
+ "destructiveHint": false,
52
+ "openWorldHint": false
53
+ },
54
+ "inputSchema": {
55
+ "type": "object",
56
+ "properties": {
57
+ "content": {
58
+ "type": "string",
59
+ "description": "The memory to store, written as a standalone fact that still makes sense without this conversation - include the who and the when."
60
+ },
61
+ "title": {
62
+ "type": "string",
63
+ "description": "Short label shown in the human's pending queue. Helps them decide quickly."
64
+ },
65
+ "vault": {
66
+ "type": "string",
67
+ "description": "Target vault name. Private vaults are rejected for cloud agents; local agents may target them."
68
+ },
69
+ "tags": {
70
+ "type": "array",
71
+ "items": { "type": "string" },
72
+ "description": "Free-form tags for later filtering."
73
+ },
74
+ "vector": {
75
+ "type": "array",
76
+ "items": { "type": "number" },
77
+ "description": "Optional precomputed embedding stored alongside the memory, so later recalls are faster and more precise."
78
+ },
79
+ "client_id": {
80
+ "type": "string",
81
+ "description": "Idempotency key. Submitting twice with the same key does not create a duplicate - use this when retrying after a timeout."
82
+ }
83
+ },
84
+ "required": ["content"]
85
+ }
86
+ },
87
+ {
88
+ "name": "manage",
89
+ "title": "Manage stored memories",
90
+ "description": "Inspect or change the lifecycle of a specific stored memory, addressed by id or by queue state. Use list_pending to review what is awaiting the human's approval, and get_by_id to read one entry in full. forget soft-deletes and is reversible with restore; discard_pending permanently drops an entry that was never confirmed. To search confirmed memory by topic instead of by address, use recall. Except for discard_pending, every action here is reversible, which is why this is not marked destructive.",
91
+ "annotations": {
92
+ "readOnlyHint": false,
93
+ "destructiveHint": false,
94
+ "openWorldHint": false
95
+ },
96
+ "inputSchema": {
97
+ "type": "object",
98
+ "properties": {
99
+ "action": {
100
+ "type": "string",
101
+ "enum": ["list_pending", "forget", "restore", "get_by_id", "discard_pending"],
102
+ "description": "Which lifecycle operation to run. list_pending takes no id; the other four require one."
103
+ },
104
+ "id": {
105
+ "type": "string",
106
+ "description": "Target memory id. Required for forget, restore, get_by_id and discard_pending; ignored by list_pending."
107
+ }
108
+ },
109
+ "required": ["action"]
110
+ }
111
+ },
112
+ {
113
+ "name": "get_context",
114
+ "title": "Get session context",
115
+ "description": "Pull a short digest of recent memory from the human's active threads and open tasks, to seed a conversation before they ask anything. Call this once at session start. For answering a specific question, use recall instead, since that searches all confirmed memory rather than only what is recent. For entries still awaiting approval, use manage with action list_pending. Annotations already declare this read-only; what they cannot say is that the digest reflects the most recent activity, so two calls minutes apart may differ.",
116
+ "annotations": {
117
+ "readOnlyHint": true,
118
+ "destructiveHint": false,
119
+ "idempotentHint": true,
120
+ "openWorldHint": false
121
+ },
122
+ "inputSchema": {
123
+ "type": "object",
124
+ "properties": {
125
+ "limit": {
126
+ "type": "integer",
127
+ "description": "Maximum number of context entries to return. Omit for the server default.",
128
+ "default": 8
129
+ }
130
+ }
131
+ }
132
+ },
133
+ {
134
+ "name": "say",
135
+ "title": "Post to the shared board",
136
+ "description": "Post a message to the shared board so the human and other agents see what was done or what is being handed over. Use it when finishing a unit of work, or to hand work to another agent. Do not use it to report routine steps the human did not ask about - the human reads this board. To read what others have posted, use board. Identity comes from your credential, so a caller cannot post as another agent.",
137
+ "annotations": {
138
+ "readOnlyHint": false,
139
+ "destructiveHint": false,
140
+ "idempotentHint": false,
141
+ "openWorldHint": false
142
+ },
143
+ "inputSchema": {
144
+ "type": "object",
145
+ "properties": {
146
+ "summary": {
147
+ "type": "string",
148
+ "description": "What happened, in one or two sentences. Write the outcome, not a log of steps."
149
+ },
150
+ "to": {
151
+ "type": "string",
152
+ "description": "Who should see it: 'master' for the human (default), or another agent's id."
153
+ },
154
+ "kind": {
155
+ "type": "string",
156
+ "enum": ["data", "handoff", "result"],
157
+ "description": "Card type. May be omitted when stage is given, in which case the kind is derived from the stage."
158
+ },
159
+ "stage": {
160
+ "type": "string",
161
+ "enum": ["start", "handoff", "done", "blocked"],
162
+ "description": "Work event: starting, handing off, finished, or blocked. Prefixes the body so the board can be filtered and de-duplicated."
163
+ },
164
+ "task_id": {
165
+ "type": "string",
166
+ "description": "Link this message to an existing task; the hand-off graph aggregates by it."
167
+ },
168
+ "refs": {
169
+ "type": "array",
170
+ "items": { "type": "string" },
171
+ "description": "References the reader may want: file paths, commit shas, or memory ids."
172
+ },
173
+ "ttl": {
174
+ "type": "integer",
175
+ "description": "Seconds after which the message stops being returned by board. Defaults to 24 hours, and is clamped to between 60 seconds and 30 days so no card is immortal."
176
+ }
177
+ },
178
+ "required": ["summary"]
179
+ }
180
+ },
181
+ {
182
+ "name": "board",
183
+ "title": "Read the shared board",
184
+ "description": "Read the shared board, optionally only what arrived since your last read. Use it to poll for messages or hand-offs addressed to you. To post, use say. Pass the previous cursor as since so a poll returns only new messages instead of the whole board. Annotations declare this read-only; note that messages expire, so an empty result can mean nothing was posted or that earlier messages have aged out.",
185
+ "annotations": {
186
+ "readOnlyHint": true,
187
+ "destructiveHint": false,
188
+ "idempotentHint": true,
189
+ "openWorldHint": false
190
+ },
191
+ "inputSchema": {
192
+ "type": "object",
193
+ "properties": {
194
+ "limit": {
195
+ "type": "integer",
196
+ "description": "Maximum number of messages to return. Omit for the server default.",
197
+ "default": 20
198
+ },
199
+ "since": {
200
+ "type": "string",
201
+ "description": "Cursor from a previous call. Only messages newer than this cursor are returned; omit to read the current board."
202
+ },
203
+ "roster": {
204
+ "type": "boolean",
205
+ "description": "Also return which agents are currently on duty."
206
+ }
207
+ }
208
+ }
209
+ }
210
+ ]
211
+ }