mixdog 0.9.89 → 0.9.90

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mixdog",
3
- "version": "0.9.89",
3
+ "version": "0.9.90",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Standalone mixdog coding-agent CLI/TUI workspace.",
@@ -74,8 +74,7 @@ export const BUILTIN_TOOLS = [
74
74
  name: 'shell',
75
75
  title: 'Mixdog Shell',
76
76
  annotations: { title: 'Mixdog Shell', readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true, compressible: true },
77
- description: 'Run programs/change state; not file inspection. '
78
- + 'Combine order-dependent commands into one command. Use async for sleep/watch/dev loops.'
77
+ description: 'Run programs/change state; not file inspection. Use async for sleep/watch/dev loops.'
79
78
  + `${_shellSyntaxCheat} ${TOOL_ASYNC_EXECUTION_CONTRACT}`,
80
79
  inputSchema: {
81
80
  type: 'object',
@@ -114,7 +113,7 @@ export const BUILTIN_TOOLS = [
114
113
  name: 'grep',
115
114
  title: 'Mixdog Grep',
116
115
  annotations: { title: 'Mixdog Grep', readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false, compressible: true },
117
- description: 'Quoted/non-identifier literal or regex→grep, over verified scopes (project root counts as verified); guessed path fragment → find first. A nonzero content_with_context result resolves that search concept; only zero/error results may change tokens or scope. files_with_matches/count are existence modes. No path "." + guessed src/**.',
116
+ description: 'Content search by literal or regex over file/dir scopes.',
118
117
  inputSchema: {
119
118
  type: 'object',
120
119
  properties: {
@@ -154,7 +153,7 @@ export const BUILTIN_TOOLS = [
154
153
  name: 'glob',
155
154
  title: 'Mixdog Glob',
156
155
  annotations: { title: 'Mixdog Glob', readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false, compressible: true },
157
- description: 'Match exact glob patterns from verified base directories (project root is verified). Batch pattern[]/path[].',
156
+ description: 'Match exact glob patterns from base directories; batch pattern[]/path[].',
158
157
  inputSchema: {
159
158
  type: 'object',
160
159
  properties: {
@@ -182,7 +181,7 @@ export const BUILTIN_TOOLS = [
182
181
  name: 'find',
183
182
  title: 'Mixdog Find Files',
184
183
  annotations: { title: 'Mixdog Find Files', readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false, compressible: true },
185
- description: 'Fuzzy lookup only for unknown partial paths/names (dot dirs included); not for the project root or already-verified roots. Output paths are verified downstream. Not for file contents.',
184
+ description: 'Fuzzy lookup for partial paths/names (dot dirs included). Returns matching paths; not file contents.',
186
185
  inputSchema: {
187
186
  type: 'object',
188
187
  properties: {
@@ -3,7 +3,7 @@ export const CODE_GRAPH_TOOL_DEFS = [
3
3
  name: 'code_graph',
4
4
  title: 'Code Graph',
5
5
  annotations: { title: 'Code Graph', readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false, compressible: false, compressibleLossless: true },
6
- description: 'Repo code structure/flow over verified source files only. IDs→graph; literal/zero→grep. File modes take files[]; symbol modes find_symbol/symbol_search/search/references/callers/callees take symbols[]. Exact identifiers use find_symbol/references/callers/callees and keywords use symbol_search/search. Unsupported target arrays are omitted, never silently mixed. Batch targets per mode.',
6
+ description: 'Repo code structure/flow over source files only. File modes take files[]; symbol modes find_symbol/symbol_search/search/references/callers/callees take symbols[]. Exact identifiers use find_symbol/references/callers/callees and keywords use symbol_search/search. Unsupported target arrays are omitted, never silently mixed.',
7
7
  inputSchema: {
8
8
  type: 'object',
9
9
  properties: {
@@ -3,6 +3,8 @@
3
3
  // tool registrations) but are not advertised via ListTools / tools.json, so
4
4
  // they never reach an external LLM. `aiWrapped: true` routes dispatches
5
5
  // through ai-wrapped-dispatch.mjs instead of the module's handleToolCall.
6
+ // Shared period grammar for recall/search_memories.
7
+ const PERIOD_DESCRIPTION = "last (recent sessions; +query topic-filter; limit=session count), Nm/Nh/Nd, today/yesterday/this_week/last_week, all, YYYY-MM-DD, date~date, HH:MM~HH:MM, or 'YYYY-MM-DD HH:MM~HH:MM'.";
6
8
  export const TOOL_DEFS = [
7
9
  {
8
10
  name: 'memory',
@@ -52,7 +54,7 @@ export const TOOL_DEFS = [
52
54
  properties: {
53
55
  query: { anyOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' }, minItems: 1 }], description: 'Search text, or array for independent fan-out queries.' },
54
56
  id: { anyOf: [{ type: 'number' }, { type: 'array', items: { type: 'number' }, minItems: 1 }], description: 'Exact #id(s) from recall. Do not invent ids.' },
55
- period: { type: 'string', description: "last (recent sessions; +query topic-filter; limit=session count), Nm/Nh/Nd, today/yesterday/this_week/last_week, all, YYYY-MM-DD, date~date, HH:MM~HH:MM, or 'YYYY-MM-DD HH:MM~HH:MM'." },
57
+ period: { type: 'string', description: PERIOD_DESCRIPTION },
56
58
  limit: { type: 'number', description: 'Max entries.' },
57
59
  offset: { type: 'number', description: 'Skip entries.' },
58
60
  sort: { type: 'string', enum: ['importance', 'date'], description: 'importance or date.' },
@@ -78,7 +80,7 @@ export const TOOL_DEFS = [
78
80
  type: 'object',
79
81
  properties: {
80
82
  query: { type: 'string', description: 'Search text.' },
81
- period: { type: 'string', description: "last (recent sessions; +query topic-filter), Nm/Nh/Nd, today/yesterday/this_week/last_week, all, YYYY-MM-DD, date range, HH:MM~HH:MM (today), or 'YYYY-MM-DD HH:MM~HH:MM'." },
83
+ period: { type: 'string', description: PERIOD_DESCRIPTION },
82
84
  sort: { type: 'string', enum: ['date', 'importance'], description: 'date or importance.' },
83
85
  category: { anyOf: [{ type: 'string', enum: ['rule','constraint','decision','fact','goal','preference','task','issue'] }, { type: 'array', items: { type: 'string', enum: ['rule','constraint','decision','fact','goal','preference','task','issue'] }, minItems: 1 }], description: 'Category filter.' },
84
86
  limit: { type: 'number', default: 30, description: 'Max entries.' },
@@ -8,7 +8,7 @@ export const TOOL_DEFS = [
8
8
  {
9
9
  name: 'search',
10
10
  title: 'Mixdog Web Search',
11
- description: `Web/docs/current-info search. Not repo-local; use explore/code_graph/grep. ${TOOL_SYNC_EXECUTION_CONTRACT} Cached; query supports array fan-out.`,
11
+ description: `Web/docs/current-info search; not repo-local. ${TOOL_SYNC_EXECUTION_CONTRACT} Cached; query supports array fan-out.`,
12
12
  inputSchema: {
13
13
  type: 'object',
14
14
  properties: {
@@ -18,11 +18,11 @@ export const EXPLORE_TOOL = {
18
18
  name: 'explore',
19
19
  title: 'Explore',
20
20
  annotations: { title: 'Explore', readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
21
- description: 'Locator for broad/uncertain targets with no known path, repo or machine-wide (dot dirs included). Array = independent targets: query[] fans out facets (max 8), never rephrasings.',
21
+ description: 'Locator for broad/uncertain targets with no known path, repo or machine-wide (dot dirs included). query[] fans out up to 8 independent facets in parallel.',
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
25
- query: { anyOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' }, minItems: 1 }], description: 'Narrow locator query; array = independent facets of the task (not rephrasings), fanned out in parallel.' },
25
+ query: { anyOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' }, minItems: 1 }], description: 'Narrow locator query; array = independent facets fanned out in parallel.' },
26
26
  cwd: { type: 'string', description: 'Project/root directory.' },
27
27
  },
28
28
  required: [],