@zibby/skills 0.1.95 → 0.2.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 +1 -1
- package/dist/artifact.d.ts +1 -115
- package/dist/browser.d.ts +10 -19
- package/dist/chartRender.d.ts +46 -57
- package/dist/chartRender.js +1 -1
- package/dist/chat-memory.d.ts +26 -330
- package/dist/chat-notify.d.ts +30 -409
- package/dist/chat-notify.js +3 -3
- package/dist/chatProgress.d.ts +28 -47
- package/dist/code-scan.d.ts +52 -58
- package/dist/codeStats.d.ts +36 -136
- package/dist/codeStats.js +1 -1
- package/dist/codebaseMemory.d.ts +52 -32
- package/dist/codebaseMemory.js +2 -2
- package/dist/core-tools.d.ts +10 -131
- package/dist/datasetStore.d.ts +52 -179
- package/dist/datasetStore.js +12 -3
- package/dist/discord.d.ts +32 -68
- package/dist/figma.d.ts +5 -408
- package/dist/function-skill.d.ts +23 -135
- package/dist/function-skill.js +1 -1
- package/dist/gbrain.d.ts +46 -114
- package/dist/git-write.d.ts +45 -137
- package/dist/git-write.js +6 -6
- package/dist/git.d.ts +2 -73
- package/dist/github.d.ts +2 -1202
- package/dist/gitlab.d.ts +55 -1059
- package/dist/gitlab.js +2 -2
- package/dist/googleDocs.d.ts +39 -175
- package/dist/hubspot.d.ts +1 -381
- package/dist/index.d.ts +19 -12
- package/dist/index.js +157 -148
- package/dist/integrations.d.ts +2 -2
- package/dist/jira.d.ts +2 -532
- package/dist/jira.js +4 -4
- package/dist/kvMemory.d.ts +47 -78
- package/dist/lark.d.ts +2 -161
- package/dist/lark.js +1 -1
- package/dist/larkDocs.d.ts +35 -236
- package/dist/linear.d.ts +36 -343
- package/dist/linkedin.d.ts +10 -120
- package/dist/llm-billing.d.ts +92 -180
- package/dist/llm-billing.js +1 -1
- package/dist/memory.d.ts +11 -137
- package/dist/notion.d.ts +28 -276
- package/dist/notion.js +4 -4
- package/dist/opendesign.d.ts +24 -202
- package/dist/opendesign.js +2 -2
- package/dist/package.json +3 -2
- package/dist/plane.d.ts +40 -24
- package/dist/report.d.ts +153 -110
- package/dist/review-dedup.d.ts +8 -8
- package/dist/review.d.ts +12 -2
- package/dist/reviewMemoryIo.d.ts +37 -3
- package/dist/reviewRecord.d.ts +41 -47
- package/dist/sentry.d.ts +25 -22
- package/dist/skill-installer.d.ts +11 -86
- package/dist/slack.d.ts +1 -284
- package/dist/socialCard.d.ts +35 -89
- package/dist/test-runner.d.ts +1 -220
- package/dist/trackers/github-adapter.d.ts +39 -94
- package/dist/trackers/index.d.ts +25 -18
- package/dist/trackers/jira-adapter.d.ts +20 -88
- package/dist/trackers/linear-adapter.d.ts +24 -87
- package/dist/trackers/plane-adapter.d.ts +29 -85
- package/dist/trackers/plane-adapter.js +1 -1
- package/dist/trackers/types.d.ts +1 -186
- package/dist/triggerAgent.d.ts +26 -42
- package/dist/triggerAgent.js +1 -1
- package/dist/workflow-builder.d.ts +11 -245
- package/docs/cli-reference.md +33 -0
- package/docs/concepts/designing-agents.md +201 -0
- package/docs/self-host/backup-restore.md +52 -0
- package/docs/self-host/index.md +75 -0
- package/docs/self-host/storage.md +50 -0
- package/docs/self-host/troubleshooting.md +48 -0
- package/docs/self-host/upgrade.md +81 -0
- package/package.json +3 -2
package/dist/review.d.ts
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @zibby/skills/review — the review-domain memory helpers, shared by the
|
|
3
|
+
* gitlab-code-review and github-code-review templates (both already depend on
|
|
4
|
+
* @zibby/skills). Kept OUT of the generic @zibby/core kernel: this is
|
|
5
|
+
* review-specific (findings/verdict schema + the review→reply memory transport),
|
|
6
|
+
* and it lives next to kvMemory.js, whose backend route + scope it mirrors.
|
|
7
|
+
*
|
|
8
|
+
* import { buildReviewRecord, parseReviewMemory, summarizeForPrompt,
|
|
9
|
+
* storeReviewRecord, recallReviewRecord } from '@zibby/skills/review';
|
|
10
|
+
*/
|
|
11
|
+
export { REVIEW_RECORD_SCHEMA_VERSION, REVIEW_RECORD_KIND, CONTENT_MAX_BYTES, FIELD_MAX_CHARS, SEVERITY_TIERS, FINDING_STATUSES, normalizeSeverity, buildReviewRecord, upsertReplyOutcome, serializeReviewRecord, parseReviewMemory, summarizeForPrompt, } from './reviewRecord.js';
|
|
12
|
+
export { scopeForReviewMemory, storeReviewRecord, recallReviewRecord, } from './reviewMemoryIo.js';
|
package/dist/reviewMemoryIo.d.ts
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* reviewMemoryIo — the NODE-SIDE (deterministic JS) transport for the
|
|
3
|
+
* code-review → comment_reply structured memory record.
|
|
4
|
+
*
|
|
5
|
+
* WHY THIS EXISTS
|
|
6
|
+
* ───────────────
|
|
7
|
+
* `reviewRecord.js` is PURE (build/serialize/parse/summarize — no I/O). Until now
|
|
8
|
+
* the only thing that STORED/RECALLED the per-PR/MR memory was the LLM, via the
|
|
9
|
+
* kv-memory MCP skill (`kv_store`/`kv_recall`). "Path A" of the approved design
|
|
10
|
+
* lifts that I/O into the JS node so storage is DETERMINISTIC, not LLM-authored.
|
|
11
|
+
* This module is that transport: a thin, BEST-EFFORT client that serializes a
|
|
12
|
+
* record and POSTs it, and recalls + parses one back — reusing the SAME backend
|
|
13
|
+
* route, ops, auth and namespacing the kv-memory skill (kvMemory.js) already uses,
|
|
14
|
+
* so the two channels share one scope and one backend entry.
|
|
15
|
+
*
|
|
16
|
+
* It lives in @zibby/skills (next to kvMemory.js, whose transport it mirrors), NOT
|
|
17
|
+
* in the generic @zibby/core kernel — this is review-domain code, and both review
|
|
18
|
+
* templates already depend on @zibby/skills. The auth + namespace helpers below
|
|
19
|
+
* are inlined (self-contained), byte-identical to kvMemory.js — keeping them the
|
|
20
|
+
* same is what makes the node-side scope agree with the kv-memory skill's scope
|
|
21
|
+
* for the same key (so a node-side store and a later LLM kv_recall land on the
|
|
22
|
+
* SAME backend SK). If kvMemory.js's behaviour changes, change these to match.
|
|
23
|
+
*
|
|
24
|
+
* TRANSPORT CONTRACT (identical to kvMemory.js):
|
|
25
|
+
* POST `${getAccountApiUrl()}/credits/review-memory`
|
|
26
|
+
* Authorization: Bearer ${PROJECT_API_TOKEN}
|
|
27
|
+
* body: { op:'store', scope, content } | { op:'recall', scope }
|
|
28
|
+
* recall returns { content, metadata, ... } (content = stored STRING or null).
|
|
29
|
+
* scope is namespaced `${WORKFLOW_TYPE-or-'agent'}:${key}`.
|
|
30
|
+
*
|
|
31
|
+
* BEST-EFFORT, ALWAYS. Every function swallows all errors and NEVER throws — a
|
|
32
|
+
* memory store/recall failure must never block or change a posted review/reply.
|
|
33
|
+
* store → { ok:false } on any failure; recall → { kind:'empty' } on any failure.
|
|
34
|
+
*/
|
|
1
35
|
/** Effective backend scope for a plain per-PR/MR key. IDENTICAL to kvMemory scopeFor. */
|
|
2
|
-
export function scopeForReviewMemory(key: any): string;
|
|
36
|
+
export declare function scopeForReviewMemory(key: any): string;
|
|
3
37
|
/**
|
|
4
38
|
* Store a review record under a plain per-PR/MR key. Serializes via
|
|
5
39
|
* serializeReviewRecord (deterministic, byte-capped 200KB) and POSTs
|
|
@@ -9,7 +43,7 @@ export function scopeForReviewMemory(key: any): string;
|
|
|
9
43
|
* with no backend credential (local dev / self-host); { ok:false, reason } otherwise.
|
|
10
44
|
* The caller must treat a false result as a no-op — memory NEVER blocks a run.
|
|
11
45
|
*/
|
|
12
|
-
export function storeReviewRecord(key: any, record: any): Promise<{
|
|
46
|
+
export declare function storeReviewRecord(key: any, record: any): Promise<{
|
|
13
47
|
ok: boolean;
|
|
14
48
|
reason?: undefined;
|
|
15
49
|
} | {
|
|
@@ -25,7 +59,7 @@ export function storeReviewRecord(key: any, record: any): Promise<{
|
|
|
25
59
|
* ({ kind:'empty' | 'record' | 'legacy', ... }); { kind:'empty' } on missing
|
|
26
60
|
* token or ANY failure, so the caller degrades to "no prior memory".
|
|
27
61
|
*/
|
|
28
|
-
export function recallReviewRecord(key: any): Promise<{
|
|
62
|
+
export declare function recallReviewRecord(key: any): Promise<{
|
|
29
63
|
kind: string;
|
|
30
64
|
record?: undefined;
|
|
31
65
|
future?: undefined;
|
package/dist/reviewRecord.d.ts
CHANGED
|
@@ -1,9 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* reviewRecord — a GENERIC, provider-agnostic structured record for the
|
|
3
|
+
* code-review → comment_reply memory (shared by gitlab-code-review and
|
|
4
|
+
* github-code-review). Replaces the freeform prose kv note with a versioned,
|
|
5
|
+
* queryable record.
|
|
6
|
+
*
|
|
7
|
+
* DELIBERATELY TRANSPORT-AGNOSTIC. This module does NO I/O: it only builds,
|
|
8
|
+
* serializes, parses and renders the record. WHO stores/recalls it (the JS node
|
|
9
|
+
* vs the LLM via kv_store/kv_recall) is a separate wiring decision — these pure
|
|
10
|
+
* functions are correct either way. The per-PR/MR KEY stays provider-specific
|
|
11
|
+
* (reviewMemoryScopeFor in each review-node.js); the record BODY here carries
|
|
12
|
+
* zero provider fields (identity lives in the key, not the body).
|
|
13
|
+
*
|
|
14
|
+
* Contract facts this module mirrors (source of truth = backend
|
|
15
|
+
* src/handlers/review-memory.js + packages/skills/src/kvMemory.js):
|
|
16
|
+
* - kv `content` is a STRING, hard-capped at 200KB (CONTENT_MAX). We serialize
|
|
17
|
+
* to a string and truncate deterministically to fit — an over-cap store is
|
|
18
|
+
* rejected (HTTP 400) and SILENTLY lost, so truncation must happen here,
|
|
19
|
+
* before the write.
|
|
20
|
+
* - kv also has an optional `metadata` OBJECT channel; parseReviewMemory
|
|
21
|
+
* therefore accepts an already-parsed object too, so the record can ride in
|
|
22
|
+
* either channel without changing this code.
|
|
23
|
+
*
|
|
24
|
+
* Reviewed by two adversarial design agents (2026-07-04): schema aligned to the
|
|
25
|
+
* REAL finding shape ({file,line,severity,category,claim,evidence,suggestion,
|
|
26
|
+
* confidence}); replies modeled as an IDEMPOTENT findingId→status set (NOT an
|
|
27
|
+
* append log, which double-appends on webhook redelivery); headSha carried but
|
|
28
|
+
* treated as advisory (its plumbing is deferred — today it is undefined).
|
|
29
|
+
*/
|
|
30
|
+
export declare const REVIEW_RECORD_SCHEMA_VERSION = 1;
|
|
31
|
+
export declare const REVIEW_RECORD_KIND = "review-record";
|
|
32
|
+
export declare const CONTENT_MAX_BYTES: number;
|
|
33
|
+
export declare const FIELD_MAX_CHARS = 2000;
|
|
34
|
+
export declare const SEVERITY_TIERS: string[];
|
|
35
|
+
export declare const FINDING_STATUSES: string[];
|
|
1
36
|
/**
|
|
2
37
|
* Normalize the review's free-form / emoji severity into a stable tier.
|
|
3
38
|
* The real review schema defaults severity to '🟡'; reviews also emit 🔴/🟢 and
|
|
4
39
|
* words. Anything unrecognized falls back to 'should-fix' (never throws).
|
|
5
40
|
*/
|
|
6
|
-
export function normalizeSeverity(raw: any): "
|
|
41
|
+
export declare function normalizeSeverity(raw: any): "blocker" | "should-fix" | "nit";
|
|
7
42
|
/**
|
|
8
43
|
* Build a fresh review record from the review node's (post-verification)
|
|
9
44
|
* findings. `findings` is the REAL review shape:
|
|
@@ -11,13 +46,7 @@ export function normalizeSeverity(raw: any): "should-fix" | "blocker" | "nit";
|
|
|
11
46
|
* Assigns stable ids (f1..fN), normalizes severity, caps long text, status:'open'.
|
|
12
47
|
* `nowIso` is injected (callers pass new Date().toISOString()) so this stays pure.
|
|
13
48
|
*/
|
|
14
|
-
export function buildReviewRecord({ headSha, verdict, objectivesChecked, findings, nowIso, }?: {
|
|
15
|
-
headSha?: any;
|
|
16
|
-
verdict?: string;
|
|
17
|
-
objectivesChecked?: boolean;
|
|
18
|
-
findings?: any[];
|
|
19
|
-
nowIso?: any;
|
|
20
|
-
}): {
|
|
49
|
+
export declare function buildReviewRecord({ headSha, verdict, objectivesChecked, findings, nowIso, }?: any): {
|
|
21
50
|
schemaVersion: number;
|
|
22
51
|
kind: string;
|
|
23
52
|
headSha: any;
|
|
@@ -44,14 +73,14 @@ export function buildReviewRecord({ headSha, verdict, objectivesChecked, finding
|
|
|
44
73
|
* Returns a NEW record (does not mutate the input). If findingId is unknown, the
|
|
45
74
|
* record is returned unchanged (best-effort, never throws).
|
|
46
75
|
*/
|
|
47
|
-
export function upsertReplyOutcome(record: any, { findingId, status, note }?:
|
|
76
|
+
export declare function upsertReplyOutcome(record: any, { findingId, status, note }?: any): any;
|
|
48
77
|
/**
|
|
49
78
|
* Serialize a record to a string that FITS CONTENT_MAX_BYTES. Deterministic:
|
|
50
79
|
* findings are stably sorted by (severityRank, file, line, id); if still over
|
|
51
80
|
* budget, the LOWEST-priority findings are dropped until it fits and
|
|
52
81
|
* `truncated:true` is set. Text fields are already capped by buildReviewRecord.
|
|
53
82
|
*/
|
|
54
|
-
export function serializeReviewRecord(record: any): string;
|
|
83
|
+
export declare function serializeReviewRecord(record: any): string;
|
|
55
84
|
/**
|
|
56
85
|
* Tolerant reader — NEVER throws. Accepts whatever kv_recall returns for the
|
|
57
86
|
* value (a JSON string, an already-parsed metadata object, a legacy prose
|
|
@@ -61,7 +90,7 @@ export function serializeReviewRecord(record: any): string;
|
|
|
61
90
|
* { kind:'record', record, future?:bool } — a structured record (future=newer schemaVersion)
|
|
62
91
|
* { kind:'legacy', legacyNote:string } — an old freeform note; advisory only
|
|
63
92
|
*/
|
|
64
|
-
export function parseReviewMemory(raw: any): {
|
|
93
|
+
export declare function parseReviewMemory(raw: any): {
|
|
65
94
|
kind: string;
|
|
66
95
|
record?: undefined;
|
|
67
96
|
future?: undefined;
|
|
@@ -82,39 +111,4 @@ export function parseReviewMemory(raw: any): {
|
|
|
82
111
|
* human-readable, and it NEVER assumes a shape it didn't verify (a future
|
|
83
112
|
* schemaVersion is surfaced as advisory). Empty → '' (caller omits the block).
|
|
84
113
|
*/
|
|
85
|
-
export function summarizeForPrompt(parsed: any): string;
|
|
86
|
-
/**
|
|
87
|
-
* reviewRecord — a GENERIC, provider-agnostic structured record for the
|
|
88
|
-
* code-review → comment_reply memory (shared by gitlab-code-review and
|
|
89
|
-
* github-code-review). Replaces the freeform prose kv note with a versioned,
|
|
90
|
-
* queryable record.
|
|
91
|
-
*
|
|
92
|
-
* DELIBERATELY TRANSPORT-AGNOSTIC. This module does NO I/O: it only builds,
|
|
93
|
-
* serializes, parses and renders the record. WHO stores/recalls it (the JS node
|
|
94
|
-
* vs the LLM via kv_store/kv_recall) is a separate wiring decision — these pure
|
|
95
|
-
* functions are correct either way. The per-PR/MR KEY stays provider-specific
|
|
96
|
-
* (reviewMemoryScopeFor in each review-node.js); the record BODY here carries
|
|
97
|
-
* zero provider fields (identity lives in the key, not the body).
|
|
98
|
-
*
|
|
99
|
-
* Contract facts this module mirrors (source of truth = backend
|
|
100
|
-
* src/handlers/review-memory.js + packages/skills/src/kvMemory.js):
|
|
101
|
-
* - kv `content` is a STRING, hard-capped at 200KB (CONTENT_MAX). We serialize
|
|
102
|
-
* to a string and truncate deterministically to fit — an over-cap store is
|
|
103
|
-
* rejected (HTTP 400) and SILENTLY lost, so truncation must happen here,
|
|
104
|
-
* before the write.
|
|
105
|
-
* - kv also has an optional `metadata` OBJECT channel; parseReviewMemory
|
|
106
|
-
* therefore accepts an already-parsed object too, so the record can ride in
|
|
107
|
-
* either channel without changing this code.
|
|
108
|
-
*
|
|
109
|
-
* Reviewed by two adversarial design agents (2026-07-04): schema aligned to the
|
|
110
|
-
* REAL finding shape ({file,line,severity,category,claim,evidence,suggestion,
|
|
111
|
-
* confidence}); replies modeled as an IDEMPOTENT findingId→status set (NOT an
|
|
112
|
-
* append log, which double-appends on webhook redelivery); headSha carried but
|
|
113
|
-
* treated as advisory (its plumbing is deferred — today it is undefined).
|
|
114
|
-
*/
|
|
115
|
-
export const REVIEW_RECORD_SCHEMA_VERSION: 1;
|
|
116
|
-
export const REVIEW_RECORD_KIND: "review-record";
|
|
117
|
-
export const CONTENT_MAX_BYTES: number;
|
|
118
|
-
export const FIELD_MAX_CHARS: 2000;
|
|
119
|
-
export const SEVERITY_TIERS: string[];
|
|
120
|
-
export const FINDING_STATUSES: string[];
|
|
114
|
+
export declare function summarizeForPrompt(parsed: any): string;
|
package/dist/sentry.d.ts
CHANGED
|
@@ -1,4 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Sentry skill — list projects, list issues, get issue details.
|
|
3
|
+
*
|
|
4
|
+
* Architecture: mirrors `browserSkill`. Resolves to a self-contained
|
|
5
|
+
* MCP stdio server binary at `@zibby/skills/bin/mcp-sentry.mjs`. Any
|
|
6
|
+
* agent strategy that supports MCP servers (Claude Code, Cursor,
|
|
7
|
+
* Codex, Gemini) can spawn it and immediately get the 3 Sentry tools.
|
|
8
|
+
*
|
|
9
|
+
* Auth flows through PROJECT_API_TOKEN + PROGRESS_API_URL (inherited
|
|
10
|
+
* env vars on Fargate). The MCP binary calls resolveIntegrationToken
|
|
11
|
+
* against the backend to fetch the user's Sentry OAuth token.
|
|
12
|
+
*
|
|
13
|
+
* Backward compat: keeps `handleToolCall` for the `assistant` agent
|
|
14
|
+
* (OpenAI Assistant API) which doesn't use MCP. Both runtimes call
|
|
15
|
+
* the same Sentry endpoints with the same shape — assistant via
|
|
16
|
+
* in-process JS, MCP-style agents via the spawned binary.
|
|
17
|
+
*/
|
|
18
|
+
export declare function sentryFetch(path: any, opts?: any): Promise<any>;
|
|
2
19
|
/**
|
|
3
20
|
* List Sentry projects in the connected organization. Returns raw
|
|
4
21
|
* Sentry-shape objects ({ slug, name, platform, id, … }).
|
|
@@ -6,7 +23,7 @@ export function sentryFetch(path: any, opts?: {}): Promise<any>;
|
|
|
6
23
|
* Single source of truth for the `sentry_list_projects` tool (MCP +
|
|
7
24
|
* assistant), and for deterministic workflow nodes.
|
|
8
25
|
*/
|
|
9
|
-
export function sentryListProjects(): Promise<any>;
|
|
26
|
+
export declare function sentryListProjects(): Promise<any>;
|
|
10
27
|
/**
|
|
11
28
|
* List Sentry issues. Returns the raw Sentry array. Wrappers above
|
|
12
29
|
* (MCP / assistant tool handlers) format the shape for LLM consumers;
|
|
@@ -15,12 +32,7 @@ export function sentryListProjects(): Promise<any>;
|
|
|
15
32
|
*
|
|
16
33
|
* @param {{ query?: string, sort?: string, project?: string, limit?: number }} opts
|
|
17
34
|
*/
|
|
18
|
-
export function sentryListIssues({ query, sort, project, limit }?:
|
|
19
|
-
query?: string;
|
|
20
|
-
sort?: string;
|
|
21
|
-
project?: string;
|
|
22
|
-
limit?: number;
|
|
23
|
-
}): Promise<any>;
|
|
35
|
+
export declare function sentryListIssues({ query, sort, project, limit }?: any): Promise<any>;
|
|
24
36
|
/**
|
|
25
37
|
* Resolve an issue REFERENCE (numeric id OR shortId) to its NUMERIC issue
|
|
26
38
|
* (group) id. The global `/issues/<id>/` endpoints used by get/update/comment
|
|
@@ -33,14 +45,14 @@ export function sentryListIssues({ query, sort, project, limit }?: {
|
|
|
33
45
|
* A purely-numeric ref returns immediately with NO API call, so the common path
|
|
34
46
|
* (callers already holding the numeric id from a fetched issue) is free.
|
|
35
47
|
*/
|
|
36
|
-
export function resolveSentryIssueId(issueRef: any): Promise<string>;
|
|
48
|
+
export declare function resolveSentryIssueId(issueRef: any): Promise<string>;
|
|
37
49
|
/**
|
|
38
50
|
* Fetch one Sentry issue's details. Uses the global `/issues/<id>/`
|
|
39
51
|
* endpoint (NOT under /organizations/<slug>/) — Sentry routes issue
|
|
40
52
|
* details by ID without an org scope. Auth still uses the connected
|
|
41
53
|
* integration's token. Accepts a numeric id OR a shortId (resolved first).
|
|
42
54
|
*/
|
|
43
|
-
export function sentryGetIssue(issueId: any): Promise<any>;
|
|
55
|
+
export declare function sentryGetIssue(issueId: any): Promise<any>;
|
|
44
56
|
/**
|
|
45
57
|
* WRITE-back to a Sentry issue. Mutates issue STATE (resolve / ignore / mute /
|
|
46
58
|
* reopen), assignment, bookmark, or seen-flag via the global
|
|
@@ -63,13 +75,7 @@ export function sentryGetIssue(issueId: any): Promise<any>;
|
|
|
63
75
|
* scope. A 403 → a CLEAR error telling the operator the Sentry connection likely
|
|
64
76
|
* lacks write scope and must be reconnected with it.
|
|
65
77
|
*/
|
|
66
|
-
export function sentryUpdateIssue(issueId:
|
|
67
|
-
status?: "resolved" | "resolvedInNextRelease" | "unresolved" | "ignored" | "muted";
|
|
68
|
-
statusDetails?: object;
|
|
69
|
-
assignedTo?: string;
|
|
70
|
-
isBookmarked?: boolean;
|
|
71
|
-
hasSeen?: boolean;
|
|
72
|
-
}): Promise<any>;
|
|
78
|
+
export declare function sentryUpdateIssue(issueId: any, update?: any): Promise<any>;
|
|
73
79
|
/**
|
|
74
80
|
* Post a comment ("note") on a Sentry issue via
|
|
75
81
|
* `POST /issues/<id>/comments/`. Same global-issue endpoint + token as
|
|
@@ -79,8 +85,5 @@ export function sentryUpdateIssue(issueId: string, update?: {
|
|
|
79
85
|
* @param {string} issueId
|
|
80
86
|
* @param {string} text the comment body (Sentry markdown)
|
|
81
87
|
*/
|
|
82
|
-
export function sentryAddComment(issueId:
|
|
83
|
-
export
|
|
84
|
-
import tools = sentrySkill.toolsForAssistant;
|
|
85
|
-
export { tools };
|
|
86
|
-
}
|
|
88
|
+
export declare function sentryAddComment(issueId: any, text: any): Promise<any>;
|
|
89
|
+
export declare const sentrySkill: any;
|
|
@@ -1,86 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
properties: {
|
|
13
|
-
skillId: {
|
|
14
|
-
type: string;
|
|
15
|
-
description: string;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
required: string[];
|
|
19
|
-
};
|
|
20
|
-
} | {
|
|
21
|
-
name: string;
|
|
22
|
-
description: string;
|
|
23
|
-
input_schema: {
|
|
24
|
-
type: string;
|
|
25
|
-
properties: {
|
|
26
|
-
skillId?: undefined;
|
|
27
|
-
};
|
|
28
|
-
required?: undefined;
|
|
29
|
-
};
|
|
30
|
-
})[];
|
|
31
|
-
export function handleToolCall(name: any, args: any, context: any): Promise<string>;
|
|
32
|
-
export function resolve(): any;
|
|
33
|
-
}
|
|
34
|
-
declare const catalog: {
|
|
35
|
-
jira: {
|
|
36
|
-
description: string;
|
|
37
|
-
integrationProvider: string;
|
|
38
|
-
envKeys: any[];
|
|
39
|
-
setupInstructions: string;
|
|
40
|
-
};
|
|
41
|
-
github: {
|
|
42
|
-
description: string;
|
|
43
|
-
integrationProvider: string;
|
|
44
|
-
envKeys: any[];
|
|
45
|
-
setupInstructions: string;
|
|
46
|
-
};
|
|
47
|
-
slack: {
|
|
48
|
-
description: string;
|
|
49
|
-
integrationProvider: string;
|
|
50
|
-
envKeys: any[];
|
|
51
|
-
setupInstructions: string;
|
|
52
|
-
};
|
|
53
|
-
sentry: {
|
|
54
|
-
description: string;
|
|
55
|
-
integrationProvider: string;
|
|
56
|
-
envKeys: any[];
|
|
57
|
-
setupInstructions: string;
|
|
58
|
-
};
|
|
59
|
-
runner: {
|
|
60
|
-
description: string;
|
|
61
|
-
envKeys: any[];
|
|
62
|
-
setupInstructions: string;
|
|
63
|
-
};
|
|
64
|
-
browser: {
|
|
65
|
-
description: string;
|
|
66
|
-
envKeys: any[];
|
|
67
|
-
setupInstructions: string;
|
|
68
|
-
};
|
|
69
|
-
memory: {
|
|
70
|
-
description: string;
|
|
71
|
-
envKeys: any[];
|
|
72
|
-
setupInstructions: string;
|
|
73
|
-
};
|
|
74
|
-
'chat-memory': {
|
|
75
|
-
description: string;
|
|
76
|
-
envKeys: any[];
|
|
77
|
-
setupInstructions: string;
|
|
78
|
-
};
|
|
79
|
-
git: {
|
|
80
|
-
description: string;
|
|
81
|
-
envKeys: any[];
|
|
82
|
-
setupInstructions: string;
|
|
83
|
-
};
|
|
84
|
-
};
|
|
85
|
-
declare function buildPromptFragment(): string;
|
|
86
|
-
export {};
|
|
1
|
+
/**
|
|
2
|
+
* Skill Installer Skill
|
|
3
|
+
*
|
|
4
|
+
* Meta-skill that provides the catalog of installable skills for chat sessions.
|
|
5
|
+
* Exposes proper tool definitions so any LLM provider (OpenAI, Anthropic, etc.)
|
|
6
|
+
* can call install/uninstall/list via native function calling.
|
|
7
|
+
*
|
|
8
|
+
* The strategy's tool-loop routes calls to handleToolCall(), which mutates
|
|
9
|
+
* the activeSkills array passed in context.
|
|
10
|
+
*/
|
|
11
|
+
export declare const skillInstallerSkill: any;
|
package/dist/slack.d.ts
CHANGED
|
@@ -1,284 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
let id: string;
|
|
3
|
-
let serverName: string;
|
|
4
|
-
let allowedTools: string[];
|
|
5
|
-
let requiresIntegration: "slack";
|
|
6
|
-
let envKeys: string[];
|
|
7
|
-
let description: string;
|
|
8
|
-
let promptFragment: string;
|
|
9
|
-
/**
|
|
10
|
-
* MCP-style agents (Claude Code / Cursor / Codex / Gemini) call
|
|
11
|
-
* this. Returns the spawn spec for our self-contained MCP binary
|
|
12
|
-
* (bin/mcp-slack.mjs) — replaces the previous
|
|
13
|
-
* `@modelcontextprotocol/server-slack@latest` so we can expose
|
|
14
|
-
* the extra routing tools (lookupByEmail, usergroups, search).
|
|
15
|
-
*
|
|
16
|
-
* Returns null when the binary can't be found (e.g. running
|
|
17
|
-
* outside a node_modules layout) — agent strategy falls back to
|
|
18
|
-
* its built-in tools; the in-process path keeps working for the
|
|
19
|
-
* `assistant` agent via handleToolCall.
|
|
20
|
-
*/
|
|
21
|
-
function resolve(): {
|
|
22
|
-
type: string;
|
|
23
|
-
command: string;
|
|
24
|
-
args: any[];
|
|
25
|
-
env: {};
|
|
26
|
-
alwaysLoad: boolean;
|
|
27
|
-
};
|
|
28
|
-
function handleToolCall(name: any, args: any): Promise<string>;
|
|
29
|
-
let tools: ({
|
|
30
|
-
name: string;
|
|
31
|
-
description: string;
|
|
32
|
-
input_schema: {
|
|
33
|
-
type: string;
|
|
34
|
-
properties: {
|
|
35
|
-
channel?: undefined;
|
|
36
|
-
text?: undefined;
|
|
37
|
-
blocks?: undefined;
|
|
38
|
-
thread_ts?: undefined;
|
|
39
|
-
timestamp?: undefined;
|
|
40
|
-
reaction?: undefined;
|
|
41
|
-
limit?: undefined;
|
|
42
|
-
user_id?: undefined;
|
|
43
|
-
email?: undefined;
|
|
44
|
-
usergroup?: undefined;
|
|
45
|
-
query?: undefined;
|
|
46
|
-
};
|
|
47
|
-
required?: undefined;
|
|
48
|
-
};
|
|
49
|
-
} | {
|
|
50
|
-
name: string;
|
|
51
|
-
description: string;
|
|
52
|
-
input_schema: {
|
|
53
|
-
type: string;
|
|
54
|
-
properties: {
|
|
55
|
-
channel: {
|
|
56
|
-
type: string;
|
|
57
|
-
description: string;
|
|
58
|
-
};
|
|
59
|
-
text: {
|
|
60
|
-
type: string;
|
|
61
|
-
description: string;
|
|
62
|
-
};
|
|
63
|
-
blocks: {
|
|
64
|
-
type: string;
|
|
65
|
-
description: string;
|
|
66
|
-
};
|
|
67
|
-
thread_ts?: undefined;
|
|
68
|
-
timestamp?: undefined;
|
|
69
|
-
reaction?: undefined;
|
|
70
|
-
limit?: undefined;
|
|
71
|
-
user_id?: undefined;
|
|
72
|
-
email?: undefined;
|
|
73
|
-
usergroup?: undefined;
|
|
74
|
-
query?: undefined;
|
|
75
|
-
};
|
|
76
|
-
required: string[];
|
|
77
|
-
};
|
|
78
|
-
} | {
|
|
79
|
-
name: string;
|
|
80
|
-
description: string;
|
|
81
|
-
input_schema: {
|
|
82
|
-
type: string;
|
|
83
|
-
properties: {
|
|
84
|
-
channel: {
|
|
85
|
-
type: string;
|
|
86
|
-
description: string;
|
|
87
|
-
};
|
|
88
|
-
thread_ts: {
|
|
89
|
-
type: string;
|
|
90
|
-
description: string;
|
|
91
|
-
};
|
|
92
|
-
text: {
|
|
93
|
-
type: string;
|
|
94
|
-
description: string;
|
|
95
|
-
};
|
|
96
|
-
blocks?: undefined;
|
|
97
|
-
timestamp?: undefined;
|
|
98
|
-
reaction?: undefined;
|
|
99
|
-
limit?: undefined;
|
|
100
|
-
user_id?: undefined;
|
|
101
|
-
email?: undefined;
|
|
102
|
-
usergroup?: undefined;
|
|
103
|
-
query?: undefined;
|
|
104
|
-
};
|
|
105
|
-
required: string[];
|
|
106
|
-
};
|
|
107
|
-
} | {
|
|
108
|
-
name: string;
|
|
109
|
-
description: string;
|
|
110
|
-
input_schema: {
|
|
111
|
-
type: string;
|
|
112
|
-
properties: {
|
|
113
|
-
channel: {
|
|
114
|
-
type: string;
|
|
115
|
-
description: string;
|
|
116
|
-
};
|
|
117
|
-
timestamp: {
|
|
118
|
-
type: string;
|
|
119
|
-
description: string;
|
|
120
|
-
};
|
|
121
|
-
reaction: {
|
|
122
|
-
type: string;
|
|
123
|
-
description: string;
|
|
124
|
-
};
|
|
125
|
-
text?: undefined;
|
|
126
|
-
blocks?: undefined;
|
|
127
|
-
thread_ts?: undefined;
|
|
128
|
-
limit?: undefined;
|
|
129
|
-
user_id?: undefined;
|
|
130
|
-
email?: undefined;
|
|
131
|
-
usergroup?: undefined;
|
|
132
|
-
query?: undefined;
|
|
133
|
-
};
|
|
134
|
-
required: string[];
|
|
135
|
-
};
|
|
136
|
-
} | {
|
|
137
|
-
name: string;
|
|
138
|
-
description: string;
|
|
139
|
-
input_schema: {
|
|
140
|
-
type: string;
|
|
141
|
-
properties: {
|
|
142
|
-
channel: {
|
|
143
|
-
type: string;
|
|
144
|
-
description: string;
|
|
145
|
-
};
|
|
146
|
-
limit: {
|
|
147
|
-
type: string;
|
|
148
|
-
description: string;
|
|
149
|
-
};
|
|
150
|
-
text?: undefined;
|
|
151
|
-
blocks?: undefined;
|
|
152
|
-
thread_ts?: undefined;
|
|
153
|
-
timestamp?: undefined;
|
|
154
|
-
reaction?: undefined;
|
|
155
|
-
user_id?: undefined;
|
|
156
|
-
email?: undefined;
|
|
157
|
-
usergroup?: undefined;
|
|
158
|
-
query?: undefined;
|
|
159
|
-
};
|
|
160
|
-
required: string[];
|
|
161
|
-
};
|
|
162
|
-
} | {
|
|
163
|
-
name: string;
|
|
164
|
-
description: string;
|
|
165
|
-
input_schema: {
|
|
166
|
-
type: string;
|
|
167
|
-
properties: {
|
|
168
|
-
channel: {
|
|
169
|
-
type: string;
|
|
170
|
-
description: string;
|
|
171
|
-
};
|
|
172
|
-
thread_ts: {
|
|
173
|
-
type: string;
|
|
174
|
-
description: string;
|
|
175
|
-
};
|
|
176
|
-
text?: undefined;
|
|
177
|
-
blocks?: undefined;
|
|
178
|
-
timestamp?: undefined;
|
|
179
|
-
reaction?: undefined;
|
|
180
|
-
limit?: undefined;
|
|
181
|
-
user_id?: undefined;
|
|
182
|
-
email?: undefined;
|
|
183
|
-
usergroup?: undefined;
|
|
184
|
-
query?: undefined;
|
|
185
|
-
};
|
|
186
|
-
required: string[];
|
|
187
|
-
};
|
|
188
|
-
} | {
|
|
189
|
-
name: string;
|
|
190
|
-
description: string;
|
|
191
|
-
input_schema: {
|
|
192
|
-
type: string;
|
|
193
|
-
properties: {
|
|
194
|
-
user_id: {
|
|
195
|
-
type: string;
|
|
196
|
-
description: string;
|
|
197
|
-
};
|
|
198
|
-
channel?: undefined;
|
|
199
|
-
text?: undefined;
|
|
200
|
-
blocks?: undefined;
|
|
201
|
-
thread_ts?: undefined;
|
|
202
|
-
timestamp?: undefined;
|
|
203
|
-
reaction?: undefined;
|
|
204
|
-
limit?: undefined;
|
|
205
|
-
email?: undefined;
|
|
206
|
-
usergroup?: undefined;
|
|
207
|
-
query?: undefined;
|
|
208
|
-
};
|
|
209
|
-
required: string[];
|
|
210
|
-
};
|
|
211
|
-
} | {
|
|
212
|
-
name: string;
|
|
213
|
-
description: string;
|
|
214
|
-
input_schema: {
|
|
215
|
-
type: string;
|
|
216
|
-
properties: {
|
|
217
|
-
email: {
|
|
218
|
-
type: string;
|
|
219
|
-
description: string;
|
|
220
|
-
};
|
|
221
|
-
channel?: undefined;
|
|
222
|
-
text?: undefined;
|
|
223
|
-
blocks?: undefined;
|
|
224
|
-
thread_ts?: undefined;
|
|
225
|
-
timestamp?: undefined;
|
|
226
|
-
reaction?: undefined;
|
|
227
|
-
limit?: undefined;
|
|
228
|
-
user_id?: undefined;
|
|
229
|
-
usergroup?: undefined;
|
|
230
|
-
query?: undefined;
|
|
231
|
-
};
|
|
232
|
-
required: string[];
|
|
233
|
-
};
|
|
234
|
-
} | {
|
|
235
|
-
name: string;
|
|
236
|
-
description: string;
|
|
237
|
-
input_schema: {
|
|
238
|
-
type: string;
|
|
239
|
-
properties: {
|
|
240
|
-
usergroup: {
|
|
241
|
-
type: string;
|
|
242
|
-
description: string;
|
|
243
|
-
};
|
|
244
|
-
channel?: undefined;
|
|
245
|
-
text?: undefined;
|
|
246
|
-
blocks?: undefined;
|
|
247
|
-
thread_ts?: undefined;
|
|
248
|
-
timestamp?: undefined;
|
|
249
|
-
reaction?: undefined;
|
|
250
|
-
limit?: undefined;
|
|
251
|
-
user_id?: undefined;
|
|
252
|
-
email?: undefined;
|
|
253
|
-
query?: undefined;
|
|
254
|
-
};
|
|
255
|
-
required: string[];
|
|
256
|
-
};
|
|
257
|
-
} | {
|
|
258
|
-
name: string;
|
|
259
|
-
description: string;
|
|
260
|
-
input_schema: {
|
|
261
|
-
type: string;
|
|
262
|
-
properties: {
|
|
263
|
-
query: {
|
|
264
|
-
type: string;
|
|
265
|
-
description: string;
|
|
266
|
-
};
|
|
267
|
-
limit: {
|
|
268
|
-
type: string;
|
|
269
|
-
description: string;
|
|
270
|
-
};
|
|
271
|
-
channel?: undefined;
|
|
272
|
-
text?: undefined;
|
|
273
|
-
blocks?: undefined;
|
|
274
|
-
thread_ts?: undefined;
|
|
275
|
-
timestamp?: undefined;
|
|
276
|
-
reaction?: undefined;
|
|
277
|
-
user_id?: undefined;
|
|
278
|
-
email?: undefined;
|
|
279
|
-
usergroup?: undefined;
|
|
280
|
-
};
|
|
281
|
-
required: string[];
|
|
282
|
-
};
|
|
283
|
-
})[];
|
|
284
|
-
}
|
|
1
|
+
export declare const slackSkill: any;
|