@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.
Files changed (78) hide show
  1. package/README.md +1 -1
  2. package/dist/artifact.d.ts +1 -115
  3. package/dist/browser.d.ts +10 -19
  4. package/dist/chartRender.d.ts +46 -57
  5. package/dist/chartRender.js +1 -1
  6. package/dist/chat-memory.d.ts +26 -330
  7. package/dist/chat-notify.d.ts +30 -409
  8. package/dist/chat-notify.js +3 -3
  9. package/dist/chatProgress.d.ts +28 -47
  10. package/dist/code-scan.d.ts +52 -58
  11. package/dist/codeStats.d.ts +36 -136
  12. package/dist/codeStats.js +1 -1
  13. package/dist/codebaseMemory.d.ts +52 -32
  14. package/dist/codebaseMemory.js +2 -2
  15. package/dist/core-tools.d.ts +10 -131
  16. package/dist/datasetStore.d.ts +52 -179
  17. package/dist/datasetStore.js +12 -3
  18. package/dist/discord.d.ts +32 -68
  19. package/dist/figma.d.ts +5 -408
  20. package/dist/function-skill.d.ts +23 -135
  21. package/dist/function-skill.js +1 -1
  22. package/dist/gbrain.d.ts +46 -114
  23. package/dist/git-write.d.ts +45 -137
  24. package/dist/git-write.js +6 -6
  25. package/dist/git.d.ts +2 -73
  26. package/dist/github.d.ts +2 -1202
  27. package/dist/gitlab.d.ts +55 -1059
  28. package/dist/gitlab.js +2 -2
  29. package/dist/googleDocs.d.ts +39 -175
  30. package/dist/hubspot.d.ts +1 -381
  31. package/dist/index.d.ts +19 -12
  32. package/dist/index.js +157 -148
  33. package/dist/integrations.d.ts +2 -2
  34. package/dist/jira.d.ts +2 -532
  35. package/dist/jira.js +4 -4
  36. package/dist/kvMemory.d.ts +47 -78
  37. package/dist/lark.d.ts +2 -161
  38. package/dist/lark.js +1 -1
  39. package/dist/larkDocs.d.ts +35 -236
  40. package/dist/linear.d.ts +36 -343
  41. package/dist/linkedin.d.ts +10 -120
  42. package/dist/llm-billing.d.ts +92 -180
  43. package/dist/llm-billing.js +1 -1
  44. package/dist/memory.d.ts +11 -137
  45. package/dist/notion.d.ts +28 -276
  46. package/dist/notion.js +4 -4
  47. package/dist/opendesign.d.ts +24 -202
  48. package/dist/opendesign.js +2 -2
  49. package/dist/package.json +3 -2
  50. package/dist/plane.d.ts +40 -24
  51. package/dist/report.d.ts +153 -110
  52. package/dist/review-dedup.d.ts +8 -8
  53. package/dist/review.d.ts +12 -2
  54. package/dist/reviewMemoryIo.d.ts +37 -3
  55. package/dist/reviewRecord.d.ts +41 -47
  56. package/dist/sentry.d.ts +25 -22
  57. package/dist/skill-installer.d.ts +11 -86
  58. package/dist/slack.d.ts +1 -284
  59. package/dist/socialCard.d.ts +35 -89
  60. package/dist/test-runner.d.ts +1 -220
  61. package/dist/trackers/github-adapter.d.ts +39 -94
  62. package/dist/trackers/index.d.ts +25 -18
  63. package/dist/trackers/jira-adapter.d.ts +20 -88
  64. package/dist/trackers/linear-adapter.d.ts +24 -87
  65. package/dist/trackers/plane-adapter.d.ts +29 -85
  66. package/dist/trackers/plane-adapter.js +1 -1
  67. package/dist/trackers/types.d.ts +1 -186
  68. package/dist/triggerAgent.d.ts +26 -42
  69. package/dist/triggerAgent.js +1 -1
  70. package/dist/workflow-builder.d.ts +11 -245
  71. package/docs/cli-reference.md +33 -0
  72. package/docs/concepts/designing-agents.md +201 -0
  73. package/docs/self-host/backup-restore.md +52 -0
  74. package/docs/self-host/index.md +75 -0
  75. package/docs/self-host/storage.md +50 -0
  76. package/docs/self-host/troubleshooting.md +48 -0
  77. package/docs/self-host/upgrade.md +81 -0
  78. package/package.json +3 -2
package/dist/review.d.ts CHANGED
@@ -1,2 +1,12 @@
1
- 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";
2
- export { scopeForReviewMemory, storeReviewRecord, recallReviewRecord } from "./reviewMemoryIo.js";
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';
@@ -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;
@@ -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): "should-fix" | "blocker" | "nit";
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 }?: {}): any;
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
- export function sentryFetch(path: any, opts?: {}): Promise<any>;
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: string, update?: {
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: string, text: string): Promise<any>;
83
- export namespace sentrySkill {
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
- export namespace skillInstallerSkill {
2
- export let id: string;
3
- export let description: string;
4
- export let envKeys: any[];
5
- export { catalog };
6
- export { buildPromptFragment as promptFragment };
7
- export let tools: ({
8
- name: string;
9
- description: string;
10
- input_schema: {
11
- type: string;
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 namespace slackSkill {
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;