@troykelly/openclaw-projects 0.0.16 → 0.0.20
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/api-client.d.ts +1 -1
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +3 -3
- package/dist/api-client.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +10 -10
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +82 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +56 -5
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +3 -3
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +3 -3
- package/dist/context.js.map +1 -1
- package/dist/gateway/oauth-rpc-methods.d.ts +44 -44
- package/dist/gateway/oauth-rpc-methods.d.ts.map +1 -1
- package/dist/gateway/oauth-rpc-methods.js +106 -106
- package/dist/gateway/oauth-rpc-methods.js.map +1 -1
- package/dist/gateway/rpc-methods.d.ts +3 -3
- package/dist/gateway/rpc-methods.d.ts.map +1 -1
- package/dist/gateway/rpc-methods.js +11 -11
- package/dist/gateway/rpc-methods.js.map +1 -1
- package/dist/hooks.d.ts +3 -3
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +42 -42
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -19
- package/dist/index.js.map +1 -1
- package/dist/register-openclaw.d.ts.map +1 -1
- package/dist/register-openclaw.js +741 -262
- package/dist/register-openclaw.js.map +1 -1
- package/dist/services/notification-service.d.ts +1 -1
- package/dist/services/notification-service.d.ts.map +1 -1
- package/dist/services/notification-service.js +11 -11
- package/dist/services/notification-service.js.map +1 -1
- package/dist/tools/contacts.d.ts +7 -7
- package/dist/tools/contacts.d.ts.map +1 -1
- package/dist/tools/contacts.js +30 -30
- package/dist/tools/contacts.js.map +1 -1
- package/dist/tools/context-search.d.ts +2 -2
- package/dist/tools/context-search.d.ts.map +1 -1
- package/dist/tools/context-search.js +14 -14
- package/dist/tools/context-search.js.map +1 -1
- package/dist/tools/email-send.d.ts +13 -13
- package/dist/tools/email-send.d.ts.map +1 -1
- package/dist/tools/email-send.js +22 -22
- package/dist/tools/email-send.js.map +1 -1
- package/dist/tools/entity-links.d.ts +1 -1
- package/dist/tools/entity-links.d.ts.map +1 -1
- package/dist/tools/entity-links.js +33 -33
- package/dist/tools/entity-links.js.map +1 -1
- package/dist/tools/file-share.d.ts +15 -15
- package/dist/tools/file-share.d.ts.map +1 -1
- package/dist/tools/file-share.js +30 -30
- package/dist/tools/file-share.js.map +1 -1
- package/dist/tools/memory-forget.d.ts +7 -7
- package/dist/tools/memory-forget.d.ts.map +1 -1
- package/dist/tools/memory-forget.js +34 -34
- package/dist/tools/memory-forget.js.map +1 -1
- package/dist/tools/memory-recall.d.ts +4 -4
- package/dist/tools/memory-recall.d.ts.map +1 -1
- package/dist/tools/memory-recall.js +9 -9
- package/dist/tools/memory-recall.js.map +1 -1
- package/dist/tools/memory-store.d.ts +3 -3
- package/dist/tools/memory-store.d.ts.map +1 -1
- package/dist/tools/memory-store.js +13 -13
- package/dist/tools/memory-store.js.map +1 -1
- package/dist/tools/message-search.d.ts +8 -8
- package/dist/tools/message-search.d.ts.map +1 -1
- package/dist/tools/message-search.js +19 -19
- package/dist/tools/message-search.js.map +1 -1
- package/dist/tools/notebooks.d.ts +20 -20
- package/dist/tools/notebooks.d.ts.map +1 -1
- package/dist/tools/notebooks.js +40 -40
- package/dist/tools/notebooks.js.map +1 -1
- package/dist/tools/notes.d.ts +35 -35
- package/dist/tools/notes.d.ts.map +1 -1
- package/dist/tools/notes.js +67 -67
- package/dist/tools/notes.js.map +1 -1
- package/dist/tools/project-search.d.ts +3 -3
- package/dist/tools/project-search.d.ts.map +1 -1
- package/dist/tools/project-search.js +15 -15
- package/dist/tools/project-search.js.map +1 -1
- package/dist/tools/projects.d.ts +6 -6
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/projects.js +25 -25
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/relationships.d.ts +19 -19
- package/dist/tools/relationships.d.ts.map +1 -1
- package/dist/tools/relationships.js +38 -38
- package/dist/tools/relationships.js.map +1 -1
- package/dist/tools/skill-store.d.ts +11 -11
- package/dist/tools/skill-store.d.ts.map +1 -1
- package/dist/tools/skill-store.js +51 -51
- package/dist/tools/skill-store.js.map +1 -1
- package/dist/tools/sms-send.d.ts +7 -7
- package/dist/tools/sms-send.d.ts.map +1 -1
- package/dist/tools/sms-send.js +16 -16
- package/dist/tools/sms-send.js.map +1 -1
- package/dist/tools/threads.d.ts +18 -18
- package/dist/tools/threads.d.ts.map +1 -1
- package/dist/tools/threads.js +33 -33
- package/dist/tools/threads.js.map +1 -1
- package/dist/tools/todo-search.d.ts +3 -3
- package/dist/tools/todo-search.d.ts.map +1 -1
- package/dist/tools/todo-search.js +15 -15
- package/dist/tools/todo-search.js.map +1 -1
- package/dist/tools/todos.d.ts +13 -13
- package/dist/tools/todos.d.ts.map +1 -1
- package/dist/tools/todos.js +37 -37
- package/dist/tools/todos.js.map +1 -1
- package/dist/types/openclaw-api.d.ts +2 -2
- package/dist/types/openclaw-api.d.ts.map +1 -1
- package/dist/utils/auto-linker.d.ts +2 -2
- package/dist/utils/auto-linker.d.ts.map +1 -1
- package/dist/utils/auto-linker.js +40 -40
- package/dist/utils/auto-linker.js.map +1 -1
- package/dist/utils/injection-log-rate-limiter.d.ts +1 -1
- package/dist/utils/injection-log-rate-limiter.js +1 -1
- package/dist/utils/nominatim.d.ts +1 -1
- package/dist/utils/nominatim.d.ts.map +1 -1
- package/dist/utils/nominatim.js +1 -1
- package/dist/utils/nominatim.js.map +1 -1
- package/openclaw.plugin.json +40 -4
- package/package.json +2 -2
package/dist/tools/sms-send.js
CHANGED
|
@@ -11,7 +11,7 @@ const MAX_BODY_LENGTH = 1600;
|
|
|
11
11
|
export const SmsSendParamsSchema = z.object({
|
|
12
12
|
to: z.string().regex(E164_REGEX, 'Phone number must be in E.164 format (e.g., +15551234567)'),
|
|
13
13
|
body: z.string().min(1, 'Message body cannot be empty').max(MAX_BODY_LENGTH, `Message body must be ${MAX_BODY_LENGTH} characters or less`),
|
|
14
|
-
|
|
14
|
+
idempotency_key: z.string().optional(),
|
|
15
15
|
});
|
|
16
16
|
/**
|
|
17
17
|
* Sanitize phone numbers from error messages for privacy.
|
|
@@ -34,7 +34,7 @@ function isTwilioConfigured(config) {
|
|
|
34
34
|
* Creates the sms_send tool.
|
|
35
35
|
*/
|
|
36
36
|
export function createSmsSendTool(options) {
|
|
37
|
-
const { client, logger, config,
|
|
37
|
+
const { client, logger, config, user_id } = options;
|
|
38
38
|
return {
|
|
39
39
|
name: 'sms_send',
|
|
40
40
|
description: 'Send an SMS message to a phone number. Use when you need to notify someone via text message. ' +
|
|
@@ -47,7 +47,7 @@ export function createSmsSendTool(options) {
|
|
|
47
47
|
const errorMessage = parseResult.error.errors.map((e) => `${e.path.join('.')}: ${e.message}`).join(', ');
|
|
48
48
|
return { success: false, error: errorMessage };
|
|
49
49
|
}
|
|
50
|
-
const { to, body,
|
|
50
|
+
const { to, body, idempotency_key } = parseResult.data;
|
|
51
51
|
// Check Twilio configuration
|
|
52
52
|
if (!isTwilioConfigured(config)) {
|
|
53
53
|
return {
|
|
@@ -57,20 +57,20 @@ export function createSmsSendTool(options) {
|
|
|
57
57
|
}
|
|
58
58
|
// Log invocation (without phone number for privacy)
|
|
59
59
|
logger.info('sms_send invoked', {
|
|
60
|
-
|
|
60
|
+
user_id,
|
|
61
61
|
bodyLength: body.length,
|
|
62
|
-
hasIdempotencyKey: !!
|
|
62
|
+
hasIdempotencyKey: !!idempotency_key,
|
|
63
63
|
});
|
|
64
64
|
try {
|
|
65
65
|
// Call API
|
|
66
66
|
const response = await client.post('/api/twilio/sms/send', {
|
|
67
67
|
to,
|
|
68
68
|
body,
|
|
69
|
-
|
|
70
|
-
}, {
|
|
69
|
+
idempotency_key,
|
|
70
|
+
}, { user_id });
|
|
71
71
|
if (!response.success) {
|
|
72
72
|
logger.error('sms_send API error', {
|
|
73
|
-
|
|
73
|
+
user_id,
|
|
74
74
|
status: response.error.status,
|
|
75
75
|
code: response.error.code,
|
|
76
76
|
});
|
|
@@ -79,28 +79,28 @@ export function createSmsSendTool(options) {
|
|
|
79
79
|
error: response.error.message || 'Failed to send SMS',
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
|
-
const {
|
|
82
|
+
const { message_id, thread_id, status } = response.data;
|
|
83
83
|
logger.debug('sms_send completed', {
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
user_id,
|
|
85
|
+
message_id,
|
|
86
86
|
status,
|
|
87
87
|
});
|
|
88
88
|
return {
|
|
89
89
|
success: true,
|
|
90
90
|
data: {
|
|
91
|
-
content: `SMS sent successfully (ID: ${
|
|
91
|
+
content: `SMS sent successfully (ID: ${message_id}, Status: ${status})`,
|
|
92
92
|
details: {
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
message_id,
|
|
94
|
+
thread_id,
|
|
95
95
|
status,
|
|
96
|
-
|
|
96
|
+
user_id,
|
|
97
97
|
},
|
|
98
98
|
},
|
|
99
99
|
};
|
|
100
100
|
}
|
|
101
101
|
catch (error) {
|
|
102
102
|
logger.error('sms_send failed', {
|
|
103
|
-
|
|
103
|
+
user_id,
|
|
104
104
|
error: error instanceof Error ? error.message : String(error),
|
|
105
105
|
});
|
|
106
106
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sms-send.js","sourceRoot":"","sources":["../../src/tools/sms-send.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,+BAA+B;AAC/B,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAEvC,gDAAgD;AAChD,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,mCAAmC;AACnC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,2DAA2D,CAAC;IAC7F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,wBAAwB,eAAe,qBAAqB,CAAC;IAC1I,
|
|
1
|
+
{"version":3,"file":"sms-send.js","sourceRoot":"","sources":["../../src/tools/sms-send.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,+BAA+B;AAC/B,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAEvC,gDAAgD;AAChD,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,mCAAmC;AACnC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,2DAA2D,CAAC;IAC7F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,wBAAwB,eAAe,qBAAqB,CAAC;IAC1I,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAiDH;;GAEG;AACH,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,2CAA2C;QAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,iDAAiD,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAoB;IAC9C,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC3F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAEpD,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,+FAA+F;YAC/F,2EAA2E;QAC7E,UAAU,EAAE,mBAAmB;QAE/B,KAAK,CAAC,OAAO,CAAC,MAAqB;YACjC,sBAAsB;YACtB,MAAM,WAAW,GAAG,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;YACjD,CAAC;YAED,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC;YAEvD,6BAA6B;YAC7B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,gEAAgE;iBACxE,CAAC;YACJ,CAAC;YAED,oDAAoD;YACpD,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC9B,OAAO;gBACP,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,iBAAiB,EAAE,CAAC,CAAC,eAAe;aACrC,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,WAAW;gBACX,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,sBAAsB,EACtB;oBACE,EAAE;oBACF,IAAI;oBACJ,eAAe;iBAChB,EACD,EAAE,OAAO,EAAE,CACZ,CAAC;gBAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtB,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE;wBACjC,OAAO;wBACP,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM;wBAC7B,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;qBAC1B,CAAC,CAAC;oBACH,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,oBAAoB;qBACtD,CAAC;gBACJ,CAAC;gBAED,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAExD,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE;oBACjC,OAAO;oBACP,UAAU;oBACV,MAAM;iBACP,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE;wBACJ,OAAO,EAAE,8BAA8B,UAAU,aAAa,MAAM,GAAG;wBACvE,OAAO,EAAE;4BACP,UAAU;4BACV,SAAS;4BACT,MAAM;4BACN,OAAO;yBACR;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAC9B,OAAO;oBACP,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC;iBACnC,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/threads.d.ts
CHANGED
|
@@ -9,16 +9,16 @@ import type { Logger } from '../logger.js';
|
|
|
9
9
|
/** Parameters for thread_list tool */
|
|
10
10
|
export declare const ThreadListParamsSchema: z.ZodObject<{
|
|
11
11
|
channel: z.ZodOptional<z.ZodEnum<["sms", "email"]>>;
|
|
12
|
-
|
|
12
|
+
contact_id: z.ZodOptional<z.ZodString>;
|
|
13
13
|
limit: z.ZodDefault<z.ZodNumber>;
|
|
14
14
|
}, "strip", z.ZodTypeAny, {
|
|
15
15
|
limit: number;
|
|
16
16
|
channel?: "email" | "sms" | undefined;
|
|
17
|
-
|
|
17
|
+
contact_id?: string | undefined;
|
|
18
18
|
}, {
|
|
19
19
|
limit?: number | undefined;
|
|
20
20
|
channel?: "email" | "sms" | undefined;
|
|
21
|
-
|
|
21
|
+
contact_id?: string | undefined;
|
|
22
22
|
}>;
|
|
23
23
|
export type ThreadListParams = z.infer<typeof ThreadListParamsSchema>;
|
|
24
24
|
/** Thread in list response (mapped from search results) */
|
|
@@ -37,7 +37,7 @@ export interface ThreadListSuccess {
|
|
|
37
37
|
details: {
|
|
38
38
|
results: ThreadListItem[];
|
|
39
39
|
total: number;
|
|
40
|
-
|
|
40
|
+
user_id: string;
|
|
41
41
|
};
|
|
42
42
|
};
|
|
43
43
|
}
|
|
@@ -52,7 +52,7 @@ export interface ThreadToolOptions {
|
|
|
52
52
|
client: ApiClient;
|
|
53
53
|
logger: Logger;
|
|
54
54
|
config: PluginConfig;
|
|
55
|
-
|
|
55
|
+
user_id: string;
|
|
56
56
|
}
|
|
57
57
|
/** Tool definition */
|
|
58
58
|
export interface ThreadListTool {
|
|
@@ -67,30 +67,30 @@ export interface ThreadListTool {
|
|
|
67
67
|
export declare function createThreadListTool(options: ThreadToolOptions): ThreadListTool;
|
|
68
68
|
/** Parameters for thread_get tool */
|
|
69
69
|
export declare const ThreadGetParamsSchema: z.ZodObject<{
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
thread_id: z.ZodString;
|
|
71
|
+
message_limit: z.ZodDefault<z.ZodNumber>;
|
|
72
72
|
}, "strip", z.ZodTypeAny, {
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
thread_id: string;
|
|
74
|
+
message_limit: number;
|
|
75
75
|
}, {
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
thread_id: string;
|
|
77
|
+
message_limit?: number | undefined;
|
|
78
78
|
}>;
|
|
79
79
|
export type ThreadGetParams = z.infer<typeof ThreadGetParamsSchema>;
|
|
80
80
|
/** Thread contact info from API */
|
|
81
81
|
interface ThreadContact {
|
|
82
82
|
id: string;
|
|
83
|
-
|
|
83
|
+
display_name: string;
|
|
84
84
|
notes?: string;
|
|
85
85
|
}
|
|
86
86
|
/** Thread info from API */
|
|
87
87
|
interface ThreadInfo {
|
|
88
88
|
id: string;
|
|
89
89
|
channel: string;
|
|
90
|
-
|
|
90
|
+
external_thread_key: string;
|
|
91
91
|
contact: ThreadContact;
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
created_at: string;
|
|
93
|
+
updated_at: string;
|
|
94
94
|
}
|
|
95
95
|
/** Message in thread */
|
|
96
96
|
interface ThreadMessage {
|
|
@@ -99,8 +99,8 @@ interface ThreadMessage {
|
|
|
99
99
|
body: string | null;
|
|
100
100
|
subject?: string;
|
|
101
101
|
fromAddress?: string;
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
received_at: string;
|
|
103
|
+
created_at: string;
|
|
104
104
|
}
|
|
105
105
|
/** Successful tool result */
|
|
106
106
|
export interface ThreadGetSuccess {
|
|
@@ -110,7 +110,7 @@ export interface ThreadGetSuccess {
|
|
|
110
110
|
details: {
|
|
111
111
|
thread: ThreadInfo;
|
|
112
112
|
messages: ThreadMessage[];
|
|
113
|
-
|
|
113
|
+
user_id: string;
|
|
114
114
|
};
|
|
115
115
|
};
|
|
116
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../src/tools/threads.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAuB3C,sCAAsC;AACtC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAIjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAsBtE,2DAA2D;AAC3D,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,6BAA6B;AAC7B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,OAAO,EAAE,cAAc,EAAE,CAAC;YAC1B,KAAK,EAAE,MAAM,CAAC;YACd,
|
|
1
|
+
{"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../src/tools/threads.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/threads.js
CHANGED
|
@@ -18,14 +18,14 @@ const MAX_MESSAGE_LIMIT = 200;
|
|
|
18
18
|
/** Parameters for thread_list tool */
|
|
19
19
|
export const ThreadListParamsSchema = z.object({
|
|
20
20
|
channel: ChannelType.optional(),
|
|
21
|
-
|
|
21
|
+
contact_id: z.string().uuid().optional(),
|
|
22
22
|
limit: z.number().int().min(1, 'Limit must be at least 1').max(MAX_LIST_LIMIT, `Limit must be ${MAX_LIST_LIMIT} or less`).default(DEFAULT_LIST_LIMIT),
|
|
23
23
|
});
|
|
24
24
|
/**
|
|
25
25
|
* Creates the thread_list tool.
|
|
26
26
|
*/
|
|
27
27
|
export function createThreadListTool(options) {
|
|
28
|
-
const { client, logger,
|
|
28
|
+
const { client, logger, user_id } = options;
|
|
29
29
|
return {
|
|
30
30
|
name: 'thread_list',
|
|
31
31
|
description: 'List message threads (conversations). Use to see recent conversations with contacts. ' + 'Can filter by channel (SMS/email) or contact.',
|
|
@@ -37,11 +37,11 @@ export function createThreadListTool(options) {
|
|
|
37
37
|
const errorMessage = parseResult.error.errors.map((e) => `${e.path.join('.')}: ${e.message}`).join(', ');
|
|
38
38
|
return { success: false, error: errorMessage };
|
|
39
39
|
}
|
|
40
|
-
const { channel,
|
|
40
|
+
const { channel, contact_id, limit } = parseResult.data;
|
|
41
41
|
logger.info('thread_list invoked', {
|
|
42
|
-
|
|
42
|
+
user_id,
|
|
43
43
|
channel,
|
|
44
|
-
hasContactId: !!
|
|
44
|
+
hasContactId: !!contact_id,
|
|
45
45
|
limit,
|
|
46
46
|
});
|
|
47
47
|
try {
|
|
@@ -55,13 +55,13 @@ export function createThreadListTool(options) {
|
|
|
55
55
|
else {
|
|
56
56
|
queryParams.set('q', '*');
|
|
57
57
|
}
|
|
58
|
-
if (
|
|
59
|
-
queryParams.set('
|
|
58
|
+
if (contact_id) {
|
|
59
|
+
queryParams.set('contact_id', contact_id);
|
|
60
60
|
}
|
|
61
|
-
const response = await client.get(`/api/search?${queryParams}`, {
|
|
61
|
+
const response = await client.get(`/api/search?${queryParams}`, { user_id });
|
|
62
62
|
if (!response.success) {
|
|
63
63
|
logger.error('thread_list API error', {
|
|
64
|
-
|
|
64
|
+
user_id,
|
|
65
65
|
status: response.error.status,
|
|
66
66
|
code: response.error.code,
|
|
67
67
|
});
|
|
@@ -80,7 +80,7 @@ export function createThreadListTool(options) {
|
|
|
80
80
|
metadata: r.metadata,
|
|
81
81
|
}));
|
|
82
82
|
logger.debug('thread_list completed', {
|
|
83
|
-
|
|
83
|
+
user_id,
|
|
84
84
|
resultCount: threadItems.length,
|
|
85
85
|
total,
|
|
86
86
|
});
|
|
@@ -101,13 +101,13 @@ export function createThreadListTool(options) {
|
|
|
101
101
|
success: true,
|
|
102
102
|
data: {
|
|
103
103
|
content,
|
|
104
|
-
details: { results: threadItems, total,
|
|
104
|
+
details: { results: threadItems, total, user_id },
|
|
105
105
|
},
|
|
106
106
|
};
|
|
107
107
|
}
|
|
108
108
|
catch (error) {
|
|
109
109
|
logger.error('thread_list failed', {
|
|
110
|
-
|
|
110
|
+
user_id,
|
|
111
111
|
error: error instanceof Error ? error.message : String(error),
|
|
112
112
|
});
|
|
113
113
|
return {
|
|
@@ -123,8 +123,8 @@ export function createThreadListTool(options) {
|
|
|
123
123
|
// =====================================================
|
|
124
124
|
/** Parameters for thread_get tool */
|
|
125
125
|
export const ThreadGetParamsSchema = z.object({
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
thread_id: z.string().min(1, 'Thread ID is required'),
|
|
127
|
+
message_limit: z
|
|
128
128
|
.number()
|
|
129
129
|
.int()
|
|
130
130
|
.min(1, 'Message limit must be at least 1')
|
|
@@ -135,7 +135,7 @@ export const ThreadGetParamsSchema = z.object({
|
|
|
135
135
|
* Creates the thread_get tool.
|
|
136
136
|
*/
|
|
137
137
|
export function createThreadGetTool(options) {
|
|
138
|
-
const { client, logger, config,
|
|
138
|
+
const { client, logger, config, user_id } = options;
|
|
139
139
|
return {
|
|
140
140
|
name: 'thread_get',
|
|
141
141
|
description: 'Get a thread with its message history. Use to view the full conversation in a thread.',
|
|
@@ -147,20 +147,20 @@ export function createThreadGetTool(options) {
|
|
|
147
147
|
const errorMessage = parseResult.error.errors.map((e) => `${e.path.join('.')}: ${e.message}`).join(', ');
|
|
148
148
|
return { success: false, error: errorMessage };
|
|
149
149
|
}
|
|
150
|
-
const {
|
|
150
|
+
const { thread_id, message_limit: messageLimit } = parseResult.data;
|
|
151
151
|
logger.info('thread_get invoked', {
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
user_id,
|
|
153
|
+
thread_id,
|
|
154
154
|
messageLimit,
|
|
155
155
|
});
|
|
156
156
|
try {
|
|
157
157
|
const queryParams = new URLSearchParams();
|
|
158
158
|
queryParams.set('limit', String(messageLimit));
|
|
159
|
-
const response = await client.get(`/api/threads/${
|
|
159
|
+
const response = await client.get(`/api/threads/${thread_id}/history?${queryParams}`, { user_id });
|
|
160
160
|
if (!response.success) {
|
|
161
161
|
logger.error('thread_get API error', {
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
user_id,
|
|
163
|
+
thread_id,
|
|
164
164
|
status: response.error.status,
|
|
165
165
|
code: response.error.code,
|
|
166
166
|
});
|
|
@@ -171,14 +171,14 @@ export function createThreadGetTool(options) {
|
|
|
171
171
|
}
|
|
172
172
|
const { thread, messages } = response.data;
|
|
173
173
|
logger.debug('thread_get completed', {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
174
|
+
user_id,
|
|
175
|
+
thread_id,
|
|
176
|
+
message_count: messages.length,
|
|
177
177
|
});
|
|
178
178
|
// Format content for display — sanitize metadata fields interpolated outside boundary wrappers
|
|
179
179
|
// Generate a per-invocation nonce for boundary markers (#1255)
|
|
180
180
|
const { nonce: threadGetNonce } = createBoundaryMarkers();
|
|
181
|
-
const contact = sanitizeMetadataField(thread.contact?.
|
|
181
|
+
const contact = sanitizeMetadataField(thread.contact?.display_name || 'Unknown', threadGetNonce);
|
|
182
182
|
const safeChannel = sanitizeMetadataField(thread.channel, threadGetNonce);
|
|
183
183
|
const header = `Thread with ${contact} [${safeChannel}]`;
|
|
184
184
|
// Detect and log potential injection patterns in inbound messages
|
|
@@ -189,12 +189,12 @@ export function createThreadGetTool(options) {
|
|
|
189
189
|
promptGuardUrl: config.promptGuardUrl,
|
|
190
190
|
});
|
|
191
191
|
if (detection.detected) {
|
|
192
|
-
const logDecision = injectionLogLimiter.shouldLog(
|
|
192
|
+
const logDecision = injectionLogLimiter.shouldLog(user_id);
|
|
193
193
|
if (logDecision.log) {
|
|
194
194
|
logger.warn(logDecision.summary ? 'injection detection log summary for previous window' : 'potential prompt injection detected in thread_get result', {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
195
|
+
user_id,
|
|
196
|
+
thread_id,
|
|
197
|
+
message_id: m.id,
|
|
198
198
|
patterns: detection.patterns,
|
|
199
199
|
source: detection.source,
|
|
200
200
|
...(logDecision.suppressed > 0 && { suppressedCount: logDecision.suppressed }),
|
|
@@ -207,7 +207,7 @@ export function createThreadGetTool(options) {
|
|
|
207
207
|
? messages
|
|
208
208
|
.map((m) => {
|
|
209
209
|
const prefix = m.direction === 'inbound' ? '←' : '→';
|
|
210
|
-
const timestamp = new Date(m.
|
|
210
|
+
const timestamp = new Date(m.created_at).toLocaleString();
|
|
211
211
|
const body = sanitizeMessageForContext(m.body || '', {
|
|
212
212
|
direction: m.direction,
|
|
213
213
|
channel: thread.channel,
|
|
@@ -223,14 +223,14 @@ export function createThreadGetTool(options) {
|
|
|
223
223
|
success: true,
|
|
224
224
|
data: {
|
|
225
225
|
content,
|
|
226
|
-
details: { thread, messages,
|
|
226
|
+
details: { thread, messages, user_id },
|
|
227
227
|
},
|
|
228
228
|
};
|
|
229
229
|
}
|
|
230
230
|
catch (error) {
|
|
231
231
|
logger.error('thread_get failed', {
|
|
232
|
-
|
|
233
|
-
|
|
232
|
+
user_id,
|
|
233
|
+
thread_id,
|
|
234
234
|
error: error instanceof Error ? error.message : String(error),
|
|
235
235
|
});
|
|
236
236
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threads.js","sourceRoot":"","sources":["../../src/tools/threads.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kCAAkC,CAAC;AAE1C,wBAAwB;AACxB,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAE7C,6BAA6B;AAC7B,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,wDAAwD;AACxD,mBAAmB;AACnB,wDAAwD;AAExD,sCAAsC;AACtC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE;IAC/B,
|
|
1
|
+
{"version":3,"file":"threads.js","sourceRoot":"","sources":["../../src/tools/threads.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,8 +63,8 @@ export interface TodoSearchSuccess {
|
|
|
63
63
|
details: {
|
|
64
64
|
count: number;
|
|
65
65
|
results: TodoSearchItem[];
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
search_type: string;
|
|
67
|
+
user_id: string;
|
|
68
68
|
};
|
|
69
69
|
};
|
|
70
70
|
}
|
|
@@ -79,7 +79,7 @@ export interface TodoSearchToolOptions {
|
|
|
79
79
|
client: ApiClient;
|
|
80
80
|
logger: Logger;
|
|
81
81
|
config: PluginConfig;
|
|
82
|
-
|
|
82
|
+
user_id: string;
|
|
83
83
|
}
|
|
84
84
|
/** Tool definition */
|
|
85
85
|
export interface TodoSearchTool {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-search.d.ts","sourceRoot":"","sources":["../../src/tools/todo-search.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,sCAAsC;AACtC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,yBAAyB;AACzB,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,+BAA+B;AAC/B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,cAAc,EAAE,CAAC;YAC1B,
|
|
1
|
+
{"version":3,"file":"todo-search.d.ts","sourceRoot":"","sources":["../../src/tools/todo-search.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,sCAAsC;AACtC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,yBAAyB;AACzB,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,+BAA+B;AAC/B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,cAAc,EAAE,CAAC;YAC1B,WAAW,EAAE,MAAM,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;CACH;AAED,oBAAoB;AACpB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAErE,yBAAyB;AACzB,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,sBAAsB;AACtB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,sBAAsB,CAAC;IAC1C,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAClE;AASD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc,CA8JnF"}
|
|
@@ -30,7 +30,7 @@ function sanitizeQuery(query) {
|
|
|
30
30
|
* Creates the todo_search tool.
|
|
31
31
|
*/
|
|
32
32
|
export function createTodoSearchTool(options) {
|
|
33
|
-
const { client, logger, config,
|
|
33
|
+
const { client, logger, config, user_id } = options;
|
|
34
34
|
return {
|
|
35
35
|
name: 'todo_search',
|
|
36
36
|
description: 'Search todos and work items by natural language query. Uses semantic and text search to find relevant items. ' +
|
|
@@ -49,7 +49,7 @@ export function createTodoSearchTool(options) {
|
|
|
49
49
|
return { success: false, error: 'Query cannot be empty after sanitization' };
|
|
50
50
|
}
|
|
51
51
|
logger.info('todo_search invoked', {
|
|
52
|
-
|
|
52
|
+
user_id,
|
|
53
53
|
queryLength: sanitizedQuery.length,
|
|
54
54
|
limit,
|
|
55
55
|
kind: kind ?? 'all',
|
|
@@ -62,15 +62,15 @@ export function createTodoSearchTool(options) {
|
|
|
62
62
|
if (location && config.nominatimUrl) {
|
|
63
63
|
try {
|
|
64
64
|
const geo = await reverseGeocode(location.lat, location.lng, config.nominatimUrl);
|
|
65
|
-
if (geo?.
|
|
66
|
-
const augmented = `${sanitizedQuery} near ${geo.
|
|
65
|
+
if (geo?.place_label) {
|
|
66
|
+
const augmented = `${sanitizedQuery} near ${geo.place_label}`;
|
|
67
67
|
if (augmented.length <= 1000) {
|
|
68
68
|
searchQuery = augmented;
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
catch {
|
|
73
|
-
logger.warn('Reverse geocode failed, proceeding without location augmentation', {
|
|
73
|
+
logger.warn('Reverse geocode failed, proceeding without location augmentation', { user_id });
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
// Over-fetch by 3x to compensate for client-side kind/status filtering (Issue #1216 review fix)
|
|
@@ -80,12 +80,12 @@ export function createTodoSearchTool(options) {
|
|
|
80
80
|
types: 'work_item',
|
|
81
81
|
limit: String(fetchLimit),
|
|
82
82
|
semantic: 'true',
|
|
83
|
-
user_email:
|
|
83
|
+
user_email: user_id, // Issue #1216: scope results to current user
|
|
84
84
|
});
|
|
85
|
-
const response = await client.get(`/api/search?${queryParams.toString()}`, {
|
|
85
|
+
const response = await client.get(`/api/search?${queryParams.toString()}`, { user_id });
|
|
86
86
|
if (!response.success) {
|
|
87
87
|
logger.error('todo_search API error', {
|
|
88
|
-
|
|
88
|
+
user_id,
|
|
89
89
|
status: response.error.status,
|
|
90
90
|
code: response.error.code,
|
|
91
91
|
});
|
|
@@ -119,8 +119,8 @@ export function createTodoSearchTool(options) {
|
|
|
119
119
|
details: {
|
|
120
120
|
count: 0,
|
|
121
121
|
results: [],
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
search_type: response.data.search_type,
|
|
123
|
+
user_id,
|
|
124
124
|
},
|
|
125
125
|
},
|
|
126
126
|
};
|
|
@@ -134,9 +134,9 @@ export function createTodoSearchTool(options) {
|
|
|
134
134
|
})
|
|
135
135
|
.join('\n');
|
|
136
136
|
logger.debug('todo_search completed', {
|
|
137
|
-
|
|
137
|
+
user_id,
|
|
138
138
|
resultCount: items.length,
|
|
139
|
-
|
|
139
|
+
search_type: response.data.search_type,
|
|
140
140
|
});
|
|
141
141
|
return {
|
|
142
142
|
success: true,
|
|
@@ -145,15 +145,15 @@ export function createTodoSearchTool(options) {
|
|
|
145
145
|
details: {
|
|
146
146
|
count: items.length,
|
|
147
147
|
results: items,
|
|
148
|
-
|
|
149
|
-
|
|
148
|
+
search_type: response.data.search_type,
|
|
149
|
+
user_id,
|
|
150
150
|
},
|
|
151
151
|
},
|
|
152
152
|
};
|
|
153
153
|
}
|
|
154
154
|
catch (error) {
|
|
155
155
|
logger.error('todo_search failed', {
|
|
156
|
-
|
|
156
|
+
user_id,
|
|
157
157
|
error: error instanceof Error ? error.message : String(error),
|
|
158
158
|
});
|
|
159
159
|
return { success: false, error: sanitizeErrorMessage(error) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-search.js","sourceRoot":"","sources":["../../src/tools/todo-search.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,sCAAsC;AACtC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,uCAAuC,CAAC;IACpG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;KACnC,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC;AAmDH;;GAEG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK,CAAC,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA8B;IACjE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"todo-search.js","sourceRoot":"","sources":["../../src/tools/todo-search.ts"],"names":[],"mappings":"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"}
|