@intutic/shared-types 0.2.0 → 1.0.9

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.
@@ -0,0 +1,206 @@
1
+ export type NotificationChannel = 'slack' | 'email' | 'webhook';
2
+ export type NotificationEventType = 'anomaly.detected' | 'incident.created' | 'incident.escalated' | 'sop.status_changed' | 'budget.exceeded' | 'session.ended' | 'adapter.write_back.failed' | 'decision.pending' | 'ssl.enforcement.violation' | 'context_gap.auto_injected' | 'trajectory.alert';
3
+ export type NotificationStatus = 'sent' | 'failed' | 'deduplicated' | 'filtered';
4
+ export interface NotificationRule {
5
+ ruleId: string;
6
+ workspaceId: string;
7
+ eventType: NotificationEventType;
8
+ channel: NotificationChannel;
9
+ channelConfig: ChannelConfig;
10
+ filters: NotificationFilters;
11
+ cooldownMinutes: number;
12
+ enabled: boolean;
13
+ createdAt: string;
14
+ updatedAt: string;
15
+ }
16
+ export interface ChannelConfig {
17
+ slackChannelId?: string;
18
+ slackChannelName?: string;
19
+ emailRecipients?: string[];
20
+ webhookUrl?: string;
21
+ webhookSecret?: string;
22
+ }
23
+ export interface NotificationFilters {
24
+ severity?: string[];
25
+ harnessType?: string[];
26
+ userId?: string[];
27
+ }
28
+ export interface CreateNotificationRuleInput {
29
+ eventType: NotificationEventType;
30
+ channel: NotificationChannel;
31
+ channelConfig: ChannelConfig;
32
+ filters?: NotificationFilters;
33
+ cooldownMinutes?: number;
34
+ enabled?: boolean;
35
+ }
36
+ export interface UpdateNotificationRuleInput {
37
+ eventType?: NotificationEventType;
38
+ channel?: NotificationChannel;
39
+ channelConfig?: ChannelConfig;
40
+ filters?: NotificationFilters;
41
+ cooldownMinutes?: number;
42
+ enabled?: boolean;
43
+ }
44
+ export interface NotificationLogEntry {
45
+ logId: string;
46
+ ruleId: string | null;
47
+ workspaceId: string;
48
+ eventType: string;
49
+ channel: NotificationChannel;
50
+ status: NotificationStatus;
51
+ channelTarget: string | null;
52
+ errorMessage: string | null;
53
+ latencyMs: number | null;
54
+ createdAt: string;
55
+ }
56
+ export interface GovernanceEvent {
57
+ type: NotificationEventType;
58
+ workspaceId: string;
59
+ sessionId?: string;
60
+ severity: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW' | 'INFO';
61
+ summary: string;
62
+ description: string;
63
+ metadata: Record<string, unknown>;
64
+ }
65
+ export interface DispatchResult {
66
+ ruleId: string;
67
+ channel: NotificationChannel;
68
+ status: NotificationStatus;
69
+ error?: string;
70
+ latencyMs?: number;
71
+ }
72
+ export interface SlackInstallation {
73
+ installationId: string;
74
+ workspaceId: string;
75
+ slackTeamId: string;
76
+ slackTeamName: string | null;
77
+ botUserId: string | null;
78
+ scopes: string[];
79
+ createdAt: string;
80
+ updatedAt: string;
81
+ }
82
+ export interface SlackConfig {
83
+ botToken: string;
84
+ teamId: string;
85
+ signingSecret: string;
86
+ }
87
+ export interface SlackBlock {
88
+ type: string;
89
+ text?: {
90
+ type: string;
91
+ text: string;
92
+ emoji?: boolean;
93
+ };
94
+ fields?: Array<{
95
+ type: string;
96
+ text: string;
97
+ }>;
98
+ elements?: SlackBlockElement[];
99
+ block_id?: string;
100
+ accessory?: SlackBlockElement;
101
+ }
102
+ export interface SlackBlockElement {
103
+ type: string;
104
+ text?: {
105
+ type: string;
106
+ text: string;
107
+ emoji?: boolean;
108
+ };
109
+ action_id?: string;
110
+ value?: string;
111
+ url?: string;
112
+ style?: 'primary' | 'danger';
113
+ }
114
+ export interface SlackMessageResult {
115
+ ok: boolean;
116
+ channel: string;
117
+ ts: string;
118
+ error?: string;
119
+ }
120
+ export interface SlackCommandResponse {
121
+ response_type: 'ephemeral' | 'in_channel';
122
+ text?: string;
123
+ blocks?: SlackBlock[];
124
+ }
125
+ export interface SlackInteraction {
126
+ type: 'block_actions';
127
+ user: {
128
+ id: string;
129
+ username: string;
130
+ name: string;
131
+ };
132
+ team: {
133
+ id: string;
134
+ domain: string;
135
+ };
136
+ channel: {
137
+ id: string;
138
+ name: string;
139
+ };
140
+ actions: Array<{
141
+ action_id: string;
142
+ block_id: string;
143
+ value: string;
144
+ type: string;
145
+ }>;
146
+ message: {
147
+ ts: string;
148
+ };
149
+ }
150
+ export interface SlackSlashCommand {
151
+ command: string;
152
+ text: string;
153
+ channel_id: string;
154
+ channel_name: string;
155
+ user_id: string;
156
+ user_name: string;
157
+ team_id: string;
158
+ team_domain: string;
159
+ response_url: string;
160
+ trigger_id: string;
161
+ }
162
+ export interface HealthCheckResult {
163
+ ok: boolean;
164
+ teamId?: string;
165
+ teamName?: string;
166
+ botUserId?: string;
167
+ error?: string;
168
+ }
169
+ export interface WebhookPayload {
170
+ event_type: string;
171
+ workspace_id: string;
172
+ severity: string;
173
+ summary: string;
174
+ description: string;
175
+ timestamp: string;
176
+ metadata: Record<string, unknown>;
177
+ }
178
+ export interface WebhookConfig {
179
+ url: string;
180
+ secret?: string;
181
+ headers?: Record<string, string>;
182
+ timeoutMs?: number;
183
+ }
184
+ export interface WebhookResult {
185
+ ok: boolean;
186
+ statusCode: number;
187
+ error?: string;
188
+ }
189
+ export interface SlackUserMapping {
190
+ mappingId: string;
191
+ workspaceId: string;
192
+ slackTeamId: string;
193
+ slackUserId: string;
194
+ memberId: string;
195
+ slackUsername?: string;
196
+ slackDisplayName?: string;
197
+ linkedAt: string;
198
+ }
199
+ export interface LinkSlackUserInput {
200
+ slackTeamId: string;
201
+ slackUserId: string;
202
+ memberId: string;
203
+ slackUsername?: string;
204
+ slackDisplayName?: string;
205
+ }
206
+ //# sourceMappingURL=notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // ============================================
3
+ // LLD #45-slack: Notification Hub + Slack Adapter
4
+ // ============================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,kDAAkD;AAClD,+CAA+C"}
package/dist/sync.d.ts CHANGED
@@ -22,6 +22,8 @@ export interface SyncSopEntry {
22
22
  contentHash: string;
23
23
  /** Which harness config files should receive this SOP. */
24
24
  harnessTargets: HarnessType[];
25
+ /** SOP pointer comment for traceability (e.g., `<!-- sop://intutic/sop_abc | Title -->`). */
26
+ sopRef?: string;
25
27
  }
26
28
  /** Config push payload from control plane to sync daemon. */
27
29
  export interface SyncConfigPayload {
@@ -40,6 +42,8 @@ export interface SyncConfigPayload {
40
42
  * WS-5 — Q1 fail behavior, Q2 proxy mode, Q3 bypass enforcement.
41
43
  */
42
44
  settings: WorkspaceSettings;
45
+ /** Applied SkillOpt config edits to write locally. */
46
+ appliedEdits?: any[];
43
47
  }
44
48
  /** Hash of a single local SOP config file. */
45
49
  export interface SopFileHash {
@@ -86,6 +90,8 @@ export interface DaemonStatus {
86
90
  lastSyncAt: string;
87
91
  /** Detected harnesses in the workspace. */
88
92
  harnesses: DetectedHarness[];
93
+ /** List of running agent processes polled on the local system. */
94
+ activeProcesses?: string[];
89
95
  }
90
96
  /** Credentials stored at ~/.intutic/credentials.json. */
91
97
  export interface IntuticCredentials {
@@ -110,6 +116,8 @@ export interface IntuticConfig {
110
116
  configVersion: number;
111
117
  /** Whether dev mode is active (local control plane). */
112
118
  devMode: boolean;
119
+ /** Local daily spending cap limit in USD. */
120
+ maxDailyBudgetUsd?: number;
113
121
  }
114
122
  /** Local integrity store at .intutic/integrity.json (per-workspace). */
115
123
  export interface IntegrityStore {
@@ -120,6 +128,37 @@ export interface IntegrityStore {
120
128
  /** Canonical hashes of synced files. */
121
129
  files: Record<string, string>;
122
130
  }
131
+ /** A single harness config file captured by the daemon. */
132
+ export interface CapturedConfigFile {
133
+ /** Relative file path (e.g., `.cursorrules`, `CLAUDE.md`). */
134
+ path: string;
135
+ /** Full file content. */
136
+ content: string;
137
+ /** SHA-256 hash of content. */
138
+ contentHash: string;
139
+ }
140
+ /** Payload sent by daemon to capture harness config snapshots (multi-file). */
141
+ export interface BatchConfigCapturePayload {
142
+ /** Workspace ID. */
143
+ workspaceId: string;
144
+ /** Harness type the config belongs to. */
145
+ harnessType: HarnessType;
146
+ /** Captured config files. */
147
+ files: CapturedConfigFile[];
148
+ }
149
+ /** Structured diff between two config snapshots. */
150
+ export interface ConfigDiff {
151
+ /** Lines added. */
152
+ addedLines: number;
153
+ /** Lines removed. */
154
+ removedLines: number;
155
+ /** Summary of changes. */
156
+ summary: string;
157
+ /** Previous content (null if first snapshot). */
158
+ previousContent: string | null;
159
+ /** Current content. */
160
+ currentContent: string;
161
+ }
123
162
  /** Zod schema for SOP hash report (daemon → control plane). */
124
163
  export declare const SopHashReportSchema: z.ZodObject<{
125
164
  workspaceId: z.ZodString;
@@ -220,6 +259,7 @@ export declare const DaemonStatusSchema: z.ZodObject<{
220
259
  detected: boolean;
221
260
  lastWriteAt: string | null;
222
261
  }>, "many">;
262
+ activeProcesses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
223
263
  }, "strip", z.ZodTypeAny, {
224
264
  workspaceId: string;
225
265
  configVersion: number;
@@ -231,6 +271,7 @@ export declare const DaemonStatusSchema: z.ZodObject<{
231
271
  detected: boolean;
232
272
  lastWriteAt: string | null;
233
273
  }[];
274
+ activeProcesses?: string[] | undefined;
234
275
  }, {
235
276
  workspaceId: string;
236
277
  configVersion: number;
@@ -242,5 +283,58 @@ export declare const DaemonStatusSchema: z.ZodObject<{
242
283
  detected: boolean;
243
284
  lastWriteAt: string | null;
244
285
  }[];
286
+ activeProcesses?: string[] | undefined;
287
+ }>;
288
+ /** Zod schema for batch config capture payload (daemon → control plane). */
289
+ export declare const BatchConfigCapturePayloadSchema: z.ZodObject<{
290
+ workspaceId: z.ZodString;
291
+ harnessType: z.ZodNativeEnum<{
292
+ readonly CURSOR: "cursor";
293
+ readonly CLAUDE_CODE: "claude-code";
294
+ readonly ANTIGRAVITY: "antigravity";
295
+ readonly N8N: "n8n";
296
+ readonly CODEX: "codex";
297
+ readonly WINDSURF: "windsurf";
298
+ readonly AIDER: "aider";
299
+ readonly OPENHANDS: "openhands";
300
+ readonly OPENCLAW: "openclaw";
301
+ readonly HERMES: "hermes";
302
+ readonly PI: "pi";
303
+ readonly CLINE: "cline";
304
+ readonly ROO_CODE: "roo-code";
305
+ readonly CONTINUE: "continue";
306
+ readonly CLAUDE_DESKTOP: "claude-desktop";
307
+ readonly GOOSE: "goose";
308
+ readonly OPEN_WEBUI: "open-webui";
309
+ }>;
310
+ files: z.ZodArray<z.ZodObject<{
311
+ path: z.ZodString;
312
+ content: z.ZodString;
313
+ contentHash: z.ZodString;
314
+ }, "strip", z.ZodTypeAny, {
315
+ path: string;
316
+ content: string;
317
+ contentHash: string;
318
+ }, {
319
+ path: string;
320
+ content: string;
321
+ contentHash: string;
322
+ }>, "many">;
323
+ }, "strip", z.ZodTypeAny, {
324
+ workspaceId: string;
325
+ harnessType: "cursor" | "claude-code" | "antigravity" | "n8n" | "codex" | "windsurf" | "aider" | "openhands" | "openclaw" | "hermes" | "pi" | "cline" | "roo-code" | "continue" | "claude-desktop" | "goose" | "open-webui";
326
+ files: {
327
+ path: string;
328
+ content: string;
329
+ contentHash: string;
330
+ }[];
331
+ }, {
332
+ workspaceId: string;
333
+ harnessType: "cursor" | "claude-code" | "antigravity" | "n8n" | "codex" | "windsurf" | "aider" | "openhands" | "openclaw" | "hermes" | "pi" | "cline" | "roo-code" | "continue" | "claude-desktop" | "goose" | "open-webui";
334
+ files: {
335
+ path: string;
336
+ content: string;
337
+ contentHash: string;
338
+ }[];
245
339
  }>;
246
340
  //# sourceMappingURL=sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
package/dist/sync.js CHANGED
@@ -8,7 +8,7 @@
8
8
  * @module
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.DaemonStatusSchema = exports.SopHashReportSchema = void 0;
11
+ exports.BatchConfigCapturePayloadSchema = exports.DaemonStatusSchema = exports.SopHashReportSchema = void 0;
12
12
  const zod_1 = require("zod");
13
13
  const enums_js_1 = require("./enums.js");
14
14
  // ─── Zod Schemas ─────────────────────────────────────────────────────
@@ -36,5 +36,16 @@ exports.DaemonStatusSchema = zod_1.z.object({
36
36
  detected: zod_1.z.boolean(),
37
37
  lastWriteAt: zod_1.z.string().datetime().nullable(),
38
38
  })),
39
+ activeProcesses: zod_1.z.array(zod_1.z.string()).optional(),
40
+ });
41
+ /** Zod schema for batch config capture payload (daemon → control plane). */
42
+ exports.BatchConfigCapturePayloadSchema = zod_1.z.object({
43
+ workspaceId: zod_1.z.string().min(1),
44
+ harnessType: zod_1.z.nativeEnum(enums_js_1.HarnessType),
45
+ files: zod_1.z.array(zod_1.z.object({
46
+ path: zod_1.z.string().min(1),
47
+ content: zod_1.z.string(),
48
+ contentHash: zod_1.z.string().length(64),
49
+ })),
39
50
  });
40
51
  //# sourceMappingURL=sync.js.map
package/dist/sync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,6BAAuB;AACvB,yCAAwC;AA0IxC,wEAAwE;AAExE,+DAA+D;AAClD,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAC,CAAC,UAAU,CAAC,sBAAW,CAAC;IACtC,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC;QACtB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAG,cAAc;QACjD,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;KACrB,CAAC,CAAC;IACH,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAA;AAEF,gDAAgD;AACnC,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,OAAC,CAAC,UAAU,CAAC,sBAAW,CAAC;QAC/B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;QACtB,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE;QACrB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAC9C,CAAC,CAAC;CACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,6BAAuB;AACvB,yCAAwC;AAuLxC,wEAAwE;AAExE,+DAA+D;AAClD,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAC,CAAC,UAAU,CAAC,sBAAW,CAAC;IACtC,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC;QACtB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAG,cAAc;QACjD,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;KACrB,CAAC,CAAC;IACH,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAA;AAEF,gDAAgD;AACnC,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,OAAC,CAAC,UAAU,CAAC,sBAAW,CAAC;QAC/B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;QACtB,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE;QACrB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAC9C,CAAC,CAAC;IACH,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAA;AAEF,4EAA4E;AAC/D,QAAA,+BAA+B,GAAG,OAAC,CAAC,MAAM,CAAC;IACtD,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAC,CAAC,UAAU,CAAC,sBAAW,CAAC;IACtC,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;QACnB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;KACnC,CAAC,CAAC;CACJ,CAAC,CAAA"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Task Management Adapter — Generic interface for external task/issue trackers.
3
+ *
4
+ * TD-022 item 3.9: TaskManagementAdapter interface
5
+ *
6
+ * Provides a unified abstraction over external task management tools
7
+ * (Jira, Linear, GitHub Issues, etc.) so the control plane can
8
+ * create/update tasks based on governance events.
9
+ *
10
+ * @module
11
+ */
12
+ /** Supported task management providers. */
13
+ export type TaskProvider = 'jira' | 'linear' | 'github' | 'asana' | 'pagerduty';
14
+ /** Priority levels mapped across providers. */
15
+ export type TaskPriority = 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW';
16
+ /** Task status (normalized across providers). */
17
+ export type TaskStatus = 'OPEN' | 'IN_PROGRESS' | 'RESOLVED' | 'CLOSED';
18
+ /** Credentials for connecting to a task management provider. */
19
+ export interface TaskProviderCredentials {
20
+ provider: TaskProvider;
21
+ /** Base URL of the provider instance (e.g., https://company.atlassian.net). */
22
+ baseUrl: string;
23
+ /** Authentication token or API key. */
24
+ authToken: string;
25
+ /** Project or board identifier within the provider. */
26
+ projectKey: string;
27
+ /** Additional provider-specific config. */
28
+ metadata?: Record<string, unknown>;
29
+ }
30
+ /** Payload for creating a new task. */
31
+ export interface CreateTaskPayload {
32
+ /** Human-readable task title. */
33
+ title: string;
34
+ /** Markdown description of the task. */
35
+ description: string;
36
+ /** Normalized priority. */
37
+ priority: TaskPriority;
38
+ /** Intutic-specific labels for categorization. */
39
+ labels?: string[];
40
+ /** Assignee identifier (provider-specific). */
41
+ assigneeId?: string;
42
+ /** Link back to the Intutic governance event. */
43
+ intuticLink?: {
44
+ /** Type of governance event that created this task. */
45
+ eventType: 'INCIDENT' | 'ANOMALY' | 'SOP_REVIEW' | 'COMPLIANCE';
46
+ /** ID of the governance event. */
47
+ eventId: string;
48
+ /** Workspace this event belongs to. */
49
+ workspaceId: string;
50
+ };
51
+ }
52
+ /** Result of creating a task in the external system. */
53
+ export interface CreateTaskResult {
54
+ /** Whether the task was successfully created. */
55
+ success: boolean;
56
+ /** External task ID (e.g., Jira issue key like "PROJ-123"). */
57
+ externalTaskId?: string;
58
+ /** URL to the task in the external system. */
59
+ externalUrl?: string;
60
+ /** Error message if creation failed. */
61
+ error?: string;
62
+ }
63
+ /** Payload for updating an existing task. */
64
+ export interface UpdateTaskPayload {
65
+ /** External task ID to update. */
66
+ externalTaskId: string;
67
+ /** New status (optional). */
68
+ status?: TaskStatus;
69
+ /** Comment to add (optional). */
70
+ comment?: string;
71
+ /** Updated priority (optional). */
72
+ priority?: TaskPriority;
73
+ /** Additional fields (provider-specific). */
74
+ fields?: Record<string, unknown>;
75
+ }
76
+ /** Result of updating a task. */
77
+ export interface UpdateTaskResult {
78
+ success: boolean;
79
+ error?: string;
80
+ }
81
+ /** A task as retrieved from the external system. */
82
+ export interface ExternalTask {
83
+ externalTaskId: string;
84
+ title: string;
85
+ status: TaskStatus;
86
+ priority: TaskPriority;
87
+ assignee?: string;
88
+ externalUrl: string;
89
+ createdAt: string;
90
+ updatedAt: string;
91
+ storyPoints?: number;
92
+ sprint?: string;
93
+ epic?: string;
94
+ }
95
+ /**
96
+ * Generic task management adapter interface.
97
+ *
98
+ * Implementations of this interface connect Intutic's governance engine
99
+ * to external task management tools. The control plane calls these methods
100
+ * when governance events (incidents, anomalies, SOP reviews) require
101
+ * external task creation or updates.
102
+ *
103
+ * Each adapter handles:
104
+ * - Authentication and connection testing
105
+ * - Task creation with Intutic-specific metadata
106
+ * - Task status updates and commenting
107
+ * - Task retrieval for status sync
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * const adapter = new JiraAdapter(credentials)
112
+ * const ok = await adapter.testConnection()
113
+ * if (ok) {
114
+ * const result = await adapter.createTask({
115
+ * title: 'CRITICAL: Data exfiltration detected',
116
+ * description: '...',
117
+ * priority: 'CRITICAL',
118
+ * labels: ['intutic-incident', 'security'],
119
+ * })
120
+ * }
121
+ * ```
122
+ */
123
+ export interface TaskManagementAdapter {
124
+ /** Provider name for this adapter. */
125
+ readonly provider: TaskProvider;
126
+ /**
127
+ * Test the connection to the external system.
128
+ * @returns true if the connection is healthy
129
+ */
130
+ testConnection(): Promise<boolean>;
131
+ /**
132
+ * Create a new task in the external system.
133
+ * @param payload - Task creation payload
134
+ * @returns Result with external task ID and URL
135
+ */
136
+ createTask(payload: CreateTaskPayload): Promise<CreateTaskResult>;
137
+ /**
138
+ * Update an existing task in the external system.
139
+ * @param payload - Task update payload
140
+ * @returns Result indicating success/failure
141
+ */
142
+ updateTask(payload: UpdateTaskPayload): Promise<UpdateTaskResult>;
143
+ /**
144
+ * Retrieve a task by its external ID.
145
+ * @param externalTaskId - The external system's task identifier
146
+ * @returns The task details, or null if not found
147
+ */
148
+ getTask(externalTaskId: string): Promise<ExternalTask | null>;
149
+ /**
150
+ * Search for tasks matching Intutic criteria.
151
+ * @param workspaceId - Intutic workspace ID to filter by
152
+ * @param filters - Optional filters (status, priority, labels)
153
+ * @returns List of matching external tasks
154
+ */
155
+ searchTasks(workspaceId: string, filters?: {
156
+ status?: TaskStatus;
157
+ priority?: TaskPriority;
158
+ labels?: string[];
159
+ }): Promise<ExternalTask[]>;
160
+ }
161
+ //# sourceMappingURL=taskManagement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskManagement.d.ts","sourceRoot":"","sources":["../src/taskManagement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ /**
3
+ * Task Management Adapter — Generic interface for external task/issue trackers.
4
+ *
5
+ * TD-022 item 3.9: TaskManagementAdapter interface
6
+ *
7
+ * Provides a unified abstraction over external task management tools
8
+ * (Jira, Linear, GitHub Issues, etc.) so the control plane can
9
+ * create/update tasks based on governance events.
10
+ *
11
+ * @module
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ //# sourceMappingURL=taskManagement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskManagement.js","sourceRoot":"","sources":["../src/taskManagement.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG"}
@@ -86,6 +86,13 @@ export interface WorkspaceSettings {
86
86
  * Defaults to `false` (opt-in only).
87
87
  */
88
88
  enableAutonomousSkillTransfer?: boolean;
89
+ /**
90
+ * Whether to automatically delete local skills/rules segments that fail
91
+ * security audits (leakage of secrets or unsafe wildcard command patterns).
92
+ *
93
+ * Defaults to `false`.
94
+ */
95
+ enableLocalSkillAuditDelete?: boolean;
89
96
  }
90
97
  /**
91
98
  * Default workspace settings.
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceSettings.d.ts","sourceRoot":"","sources":["../src/workspaceSettings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAG3F,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAA;AAEzE;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;OAWG;IACH,oBAAoB,EAAE,oBAAoB,CAAA;IAE1C;;;;;;;;;;;;OAYG;IACH,YAAY,EAAE,YAAY,CAAA;IAE1B;;;;;;;;;;;;OAYG;IACH,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,yDAAyD;IACzD,YAAY,CAAC,EAAE;QACb,iBAAiB,CAAC,EAAE,OAAO,CAAA;QAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAA;QACjC,0BAA0B,CAAC,EAAE,OAAO,CAAA;QACpC,mEAAmE;QACnE,qBAAqB,CAAC,EAAE,OAAO,CAAA;QAC/B,iDAAiD;QACjD,mBAAmB,CAAC,EAAE,OAAO,CAAA;QAC7B,mDAAmD;QACnD,eAAe,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAA;IAED;;;;;;;;;;;OAWG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAA;CACxC;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAUxC,CAAA;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,GAAG,SAAS,GACpD,iBAAiB,CAKnB"}
1
+ {"version":3,"file":"workspaceSettings.d.ts","sourceRoot":"","sources":["../src/workspaceSettings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAG3F,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAA;AAEzE;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;OAWG;IACH,oBAAoB,EAAE,oBAAoB,CAAA;IAE1C;;;;;;;;;;;;OAYG;IACH,YAAY,EAAE,YAAY,CAAA;IAE1B;;;;;;;;;;;;OAYG;IACH,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,yDAAyD;IACzD,YAAY,CAAC,EAAE;QACb,iBAAiB,CAAC,EAAE,OAAO,CAAA;QAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAA;QACjC,0BAA0B,CAAC,EAAE,OAAO,CAAA;QACpC,mEAAmE;QACnE,qBAAqB,CAAC,EAAE,OAAO,CAAA;QAC/B,iDAAiD;QACjD,mBAAmB,CAAC,EAAE,OAAO,CAAA;QAC7B,mDAAmD;QACnD,eAAe,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAA;IAED;;;;;;;;;;;OAWG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAA;IAEvC;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAA;CACtC;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAWxC,CAAA;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,GAAG,SAAS,GACpD,iBAAiB,CAKnB"}
@@ -29,6 +29,7 @@ exports.DEFAULT_WORKSPACE_SETTINGS = {
29
29
  ff_response_cache_semantic: false,
30
30
  },
31
31
  enableAutonomousSkillTransfer: false,
32
+ enableLocalSkillAuditDelete: false,
32
33
  };
33
34
  /**
34
35
  * Merge partial stored settings with defaults.
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceSettings.js","sourceRoot":"","sources":["../src/workspaceSettings.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AA2GH,4DAOC;AA5BD;;;;GAIG;AACU,QAAA,0BAA0B,GAAsB;IAC3D,oBAAoB,EAAE,MAAM;IAC5B,YAAY,EAAU,aAAa;IACnC,qBAAqB,EAAE,SAAS;IAChC,YAAY,EAAE;QACZ,iBAAiB,EAAE,KAAK;QACxB,uBAAuB,EAAE,KAAK;QAC9B,0BAA0B,EAAE,KAAK;KAClC;IACD,6BAA6B,EAAE,KAAK;CACrC,CAAA;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CACtC,MAAqD;IAErD,OAAO;QACL,GAAG,kCAA0B;QAC7B,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;KAClB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"workspaceSettings.js","sourceRoot":"","sources":["../src/workspaceSettings.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAoHH,4DAOC;AA7BD;;;;GAIG;AACU,QAAA,0BAA0B,GAAsB;IAC3D,oBAAoB,EAAE,MAAM;IAC5B,YAAY,EAAU,aAAa;IACnC,qBAAqB,EAAE,SAAS;IAChC,YAAY,EAAE;QACZ,iBAAiB,EAAE,KAAK;QACxB,uBAAuB,EAAE,KAAK;QAC9B,0BAA0B,EAAE,KAAK;KAClC;IACD,6BAA6B,EAAE,KAAK;IACpC,2BAA2B,EAAE,KAAK;CACnC,CAAA;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CACtC,MAAqD;IAErD,OAAO;QACL,GAAG,kCAA0B;QAC7B,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;KAClB,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@intutic/shared-types",
3
- "version": "0.2.0",
3
+ "version": "1.0.9",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "files": [
7
7
  "./dist"
8
8
  ],
9
+ "license": "MIT",
9
10
  "dependencies": {
10
11
  "zod": "^3.23"
11
12
  },