@gitgov/core 1.3.0 → 1.5.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.
@@ -23,17 +23,17 @@ interface ActorRecord {
23
23
  */
24
24
  displayName: string;
25
25
  /**
26
- * The Ed25519 public key (base64 encoded) for verifying the actor's signatures.
26
+ * The Ed25519 public key (base64 encoded, 44 characters) for verifying the actor's signatures.
27
27
  */
28
28
  publicKey: string;
29
29
  /**
30
- * List of capacity roles defining the actor's skills and permissions.
30
+ * List of capacity roles defining the actor's skills and permissions. Uses hierarchical format with colons.
31
31
  *
32
32
  * @minItems 1
33
33
  */
34
34
  roles: [string, ...string[]];
35
35
  /**
36
- * The lifecycle status of the actor.
36
+ * Optional. The lifecycle status of the actor. Defaults to 'active' if not specified.
37
37
  */
38
38
  status?: 'active' | 'revoked';
39
39
  /**
@@ -60,29 +60,109 @@ interface AgentRecord {
60
60
  */
61
61
  id: string;
62
62
  status?: 'active' | 'archived';
63
- guild: 'design' | 'intelligence' | 'strategy' | 'operations' | 'quality';
63
+ /**
64
+ * Optional list of triggers that activate the agent.
65
+ * Additional fields are allowed and depend on trigger type:
66
+ * - webhook triggers: 'event' (event identifier), 'filter' (condition)
67
+ * - scheduled triggers: 'cron' (cron expression)
68
+ * - manual triggers: 'command' (example CLI command)
69
+ *
70
+ */
64
71
  triggers?: {
72
+ /**
73
+ * Type of trigger that activates the agent
74
+ */
65
75
  type: 'manual' | 'webhook' | 'scheduled';
76
+ [k: string]: unknown | undefined;
66
77
  }[];
67
78
  knowledge_dependencies?: string[];
68
79
  prompt_engine_requirements?: {
69
80
  roles?: string[];
70
81
  skills?: string[];
71
82
  };
83
+ /**
84
+ * Optional framework-specific or deployment-specific metadata for agent extensions.
85
+ * Common use cases: framework identification (langchain, google-adk), deployment info (provider, image, region),
86
+ * cost tracking (cost_per_invocation, currency), tool capabilities, maintainer info.
87
+ * This field does NOT affect agent execution - it is purely informational.
88
+ *
89
+ */
90
+ metadata?: {
91
+ [k: string]: unknown | undefined;
92
+ };
72
93
  engine: {
73
94
  type: 'local';
95
+ /**
96
+ * Runtime environment (typescript, python, etc.)
97
+ */
74
98
  runtime?: string;
99
+ /**
100
+ * Path to the agent entry file
101
+ */
75
102
  entrypoint?: string;
103
+ /**
104
+ * Function name to invoke
105
+ */
76
106
  function?: string;
77
107
  } | {
78
108
  type: 'api';
79
- url?: string;
109
+ /**
110
+ * HTTP endpoint for the agent
111
+ */
112
+ url: string;
80
113
  method?: 'POST' | 'GET';
81
- auth?: {};
114
+ /**
115
+ * Authentication configuration for API requests
116
+ */
117
+ auth?: {
118
+ /**
119
+ * Authentication type. 'actor-signature' uses the agent's ActorRecord keypair to sign requests.
120
+ */
121
+ type?: 'bearer' | 'oauth' | 'api-key' | 'actor-signature';
122
+ /**
123
+ * Reference to secret in Secret Manager (for bearer/api-key/oauth auth types)
124
+ */
125
+ secret_key?: string;
126
+ /**
127
+ * Direct token value (not recommended for production, use secret_key instead)
128
+ */
129
+ token?: string;
130
+ [k: string]: unknown | undefined;
131
+ };
82
132
  } | {
83
133
  type: 'mcp';
84
- url?: string;
85
- auth?: {};
134
+ /**
135
+ * MCP server endpoint
136
+ */
137
+ url: string;
138
+ /**
139
+ * Authentication configuration for MCP server
140
+ */
141
+ auth?: {
142
+ /**
143
+ * Authentication type. 'actor-signature' uses the agent's ActorRecord keypair to sign requests.
144
+ */
145
+ type?: 'bearer' | 'oauth' | 'api-key' | 'actor-signature';
146
+ /**
147
+ * Reference to secret in Secret Manager (for bearer/api-key/oauth auth types)
148
+ */
149
+ secret_key?: string;
150
+ /**
151
+ * Direct token value (not recommended for production, use secret_key instead)
152
+ */
153
+ token?: string;
154
+ [k: string]: unknown | undefined;
155
+ };
156
+ } | {
157
+ type: 'custom';
158
+ /**
159
+ * Custom protocol identifier (e.g., 'a2a', 'grpc')
160
+ */
161
+ protocol?: string;
162
+ /**
163
+ * Protocol-specific configuration
164
+ */
165
+ config?: {};
86
166
  };
87
167
  }
88
168
 
@@ -92,7 +172,7 @@ interface AgentRecord {
92
172
  * and run 'pnpm compile:types' to regenerate this file.
93
173
  */
94
174
  /**
95
- * Canonical schema for changelog records - Enterprise Grade System Historian
175
+ * Canonical schema for changelog records - aggregates N tasks into 1 release note
96
176
  */
97
177
  interface ChangelogRecord {
98
178
  /**
@@ -100,90 +180,51 @@ interface ChangelogRecord {
100
180
  */
101
181
  id: string;
102
182
  /**
103
- * Type of the primary entity that changed
104
- */
105
- entityType: 'task' | 'cycle' | 'agent' | 'system' | 'configuration';
106
- /**
107
- * ID of the primary entity that changed
108
- */
109
- entityId: string;
110
- /**
111
- * The nature of the change
112
- */
113
- changeType: 'creation' | 'completion' | 'update' | 'deletion' | 'hotfix';
114
- /**
115
- * Executive title of the change
183
+ * Executive title of the deliverable
116
184
  */
117
185
  title: string;
118
186
  /**
119
- * Detailed description of the change and its impact
187
+ * Detailed description of the value delivered, including key decisions and impact
120
188
  */
121
189
  description: string;
122
190
  /**
123
- * Unix timestamp in seconds when the change occurred
124
- */
125
- timestamp: number;
126
- /**
127
- * How the change was initiated
128
- */
129
- trigger: 'manual' | 'automated' | 'emergency';
130
- /**
131
- * Actor or agent ID that initiated the change
132
- */
133
- triggeredBy: string;
134
- /**
135
- * Why the change was made
191
+ * IDs of tasks that compose this deliverable (minimum 1 required)
192
+ *
193
+ * @minItems 1
136
194
  */
137
- reason: string;
195
+ relatedTasks: [string, ...string[]];
138
196
  /**
139
- * Risk level of the change
197
+ * Unix timestamp in seconds when the deliverable was completed
140
198
  */
141
- riskLevel: 'low' | 'medium' | 'high' | 'critical';
199
+ completedAt: number;
142
200
  /**
143
- * IDs of systems impacted by this change
201
+ * Optional IDs of cycles related to this deliverable
144
202
  */
145
- affectedSystems?: string[];
203
+ relatedCycles?: string[];
146
204
  /**
147
- * Number of users impacted by this change
205
+ * Optional IDs of key execution records related to this work
148
206
  */
149
- usersAffected?: number;
207
+ relatedExecutions?: string[];
150
208
  /**
151
- * Downtime in seconds caused by this change
209
+ * Optional version or release identifier (e.g., 'v1.0.0', 'sprint-24')
152
210
  */
153
- downtime?: number;
211
+ version?: string;
154
212
  /**
155
- * List of main files that were created or modified
213
+ * Optional tags for categorization (e.g., 'feature:auth', 'bugfix', 'security')
156
214
  */
157
- files?: string[];
215
+ tags?: string[];
158
216
  /**
159
- * List of git commit hashes related to this change
217
+ * Optional list of git commit hashes related to this deliverable
160
218
  */
161
219
  commits?: string[];
162
220
  /**
163
- * Step-by-step instructions to rollback this change
221
+ * Optional list of main files that were created or modified
164
222
  */
165
- rollbackInstructions?: string;
223
+ files?: string[];
166
224
  /**
167
- * Cross-references to other GitGovernance records
225
+ * Optional additional context, decisions, or learnings
168
226
  */
169
- references?: {
170
- /**
171
- * IDs of related TaskRecords
172
- */
173
- tasks?: string[];
174
- /**
175
- * IDs of related CycleRecords
176
- */
177
- cycles?: string[];
178
- /**
179
- * IDs of related ExecutionRecords
180
- */
181
- executions?: string[];
182
- /**
183
- * IDs of related ChangelogRecords
184
- */
185
- changelogs?: string[];
186
- };
227
+ notes?: string;
187
228
  }
188
229
 
189
230
  /**
@@ -192,32 +233,35 @@ interface ChangelogRecord {
192
233
  * and run 'pnpm compile:types' to regenerate this file.
193
234
  */
194
235
  /**
195
- * Canonical schema for cycle records (sprints, milestones)
236
+ * Canonical schema for cycle records - strategic grouping of work
196
237
  */
197
238
  interface CycleRecord {
198
239
  /**
199
- * Unique identifier for the cycle
240
+ * Unique identifier for the cycle (10 timestamp + 1 dash + 5 'cycle' + 1 dash + max 50 slug = 67 max)
200
241
  */
201
242
  id: string;
202
243
  /**
203
- * Human-readable title for the cycle (e.g., 'Sprint 24.08')
244
+ * Human-readable title for the cycle (e.g., 'Sprint 24', 'Auth v2.0', 'Q4 2025')
204
245
  */
205
246
  title: string;
206
247
  /**
207
248
  * The lifecycle status of the cycle
208
249
  */
209
250
  status: 'planning' | 'active' | 'completed' | 'archived';
251
+ /**
252
+ * Optional array of Task IDs that belong to this cycle. Can be empty for cycles that only contain child cycles. (10 timestamp + 1 dash + 4 'task' + 1 dash + max 50 slug = 66 max)
253
+ */
210
254
  taskIds?: string[];
211
255
  /**
212
- * An optional array of Cycle IDs that are children of this cycle, allowing for hierarchies.
256
+ * Optional array of Cycle IDs that are children of this cycle, allowing for hierarchies (e.g., Q1 containing Sprint 1, Sprint 2, Sprint 3). (10 timestamp + 1 dash + 5 'cycle' + 1 dash + max 50 slug = 67 max)
213
257
  */
214
258
  childCycleIds?: string[];
215
259
  /**
216
- * Optional list of key:value tags for categorization (e.g., 'roadmap:q4', 'team:alpha').
260
+ * Optional list of key:value tags for categorization (e.g., 'roadmap:q4', 'team:alpha', 'okr:growth').
217
261
  */
218
262
  tags?: string[];
219
263
  /**
220
- * An optional description of the cycle's goals and objectives
264
+ * Optional description of the cycle's goals, objectives, and context
221
265
  */
222
266
  notes?: string;
223
267
  }
@@ -228,35 +272,49 @@ interface CycleRecord {
228
272
  * and run 'pnpm compile:types' to regenerate this file.
229
273
  */
230
274
  /**
231
- * Canonical schema for execution log records
275
+ * Canonical schema for execution log records - the universal event stream
232
276
  */
233
277
  interface ExecutionRecord {
234
278
  /**
235
- * Unique identifier for the execution log entry
279
+ * Unique identifier for the execution log entry (10 timestamp + 1 dash + 4 'exec' + 1 dash + max 50 slug = 66 max)
236
280
  */
237
281
  id: string;
238
282
  /**
239
- * ID of the parent task
283
+ * ID of the parent task this execution belongs to (10 timestamp + 1 dash + 4 'task' + 1 dash + max 50 slug = 66 max)
240
284
  */
241
285
  taskId: string;
242
286
  /**
243
287
  * Semantic classification of the execution event
244
288
  */
245
- type?: 'analysis' | 'progress' | 'blocker' | 'completion' | 'info' | 'correction';
289
+ type: 'analysis' | 'progress' | 'blocker' | 'completion' | 'info' | 'correction';
246
290
  /**
247
- * Human-readable title for the execution
291
+ * Human-readable title for the execution (used to generate ID)
248
292
  */
249
- title?: string;
293
+ title: string;
250
294
  /**
251
- * The tangible, verifiable output or result of the execution
295
+ * The tangible, verifiable output or result of the execution.
296
+ * This is the "WHAT" - evidence of work or event summary.
297
+ *
252
298
  */
253
299
  result: string;
254
300
  /**
255
- * Optional comments about decisions, blockers or context
301
+ * Optional narrative, context and decisions behind the execution.
302
+ * This is the "HOW" and "WHY" - the story behind the result.
303
+ *
256
304
  */
257
305
  notes?: string;
258
306
  /**
259
- * List of URIs to relevant commits, files, or external documents
307
+ * Optional list of typed references to relevant commits, files, PRs, or external documents.
308
+ * Should use typed prefixes for clarity and trazabilidad (see execution_protocol_appendix.md):
309
+ * - commit: Git commit SHA
310
+ * - pr: Pull Request number
311
+ * - file: File path (relative to repo root)
312
+ * - url: External URL
313
+ * - issue: GitHub Issue number
314
+ * - task: TaskRecord ID
315
+ * - exec: ExecutionRecord ID (for corrections or dependencies)
316
+ * - changelog: ChangelogRecord ID
317
+ *
260
318
  */
261
319
  references?: string[];
262
320
  }
@@ -267,7 +325,7 @@ interface ExecutionRecord {
267
325
  * and run 'pnpm compile:types' to regenerate this file.
268
326
  */
269
327
  /**
270
- * Canonical schema for feedback records
328
+ * Canonical schema for feedback records - structured conversation about work
271
329
  */
272
330
  interface FeedbackRecord {
273
331
  /**
@@ -277,9 +335,16 @@ interface FeedbackRecord {
277
335
  /**
278
336
  * The type of entity this feedback refers to
279
337
  */
280
- entityType: 'task' | 'execution' | 'changelog' | 'feedback';
338
+ entityType: 'task' | 'execution' | 'changelog' | 'feedback' | 'cycle';
281
339
  /**
282
- * The ID of the entity this feedback refers to
340
+ * The ID of the entity this feedback refers to.
341
+ * Must match the pattern for its entityType:
342
+ * - task: ^\d{10}-task-[a-z0-9-]{1,50}$
343
+ * - execution: ^\d{10}-exec-[a-z0-9-]{1,50}$
344
+ * - changelog: ^\d{10}-changelog-[a-z0-9-]{1,50}$
345
+ * - feedback: ^\d{10}-feedback-[a-z0-9-]{1,50}$
346
+ * - cycle: ^\d{10}-cycle-[a-z0-9-]{1,50}$
347
+ *
283
348
  */
284
349
  entityId: string;
285
350
  /**
@@ -287,19 +352,22 @@ interface FeedbackRecord {
287
352
  */
288
353
  type: 'blocking' | 'suggestion' | 'question' | 'approval' | 'clarification' | 'assignment';
289
354
  /**
290
- * The lifecycle status of the feedback
355
+ * The lifecycle status of the feedback.
356
+ * Note: FeedbackRecords are immutable. To change status, create a new feedback
357
+ * that references this one using entityType: "feedback" and resolvesFeedbackId.
358
+ *
291
359
  */
292
360
  status: 'open' | 'acknowledged' | 'resolved' | 'wontfix';
293
361
  /**
294
- * The content of the feedback
362
+ * The content of the feedback. Reduced from 10000 to 5000 chars for practical use.
295
363
  */
296
364
  content: string;
297
365
  /**
298
- * The Actor ID of the agent responsible for addressing the feedback
366
+ * Optional. The Actor ID responsible for addressing the feedback (e.g., 'human:maria', 'agent:camilo:cursor')
299
367
  */
300
368
  assignee?: string;
301
369
  /**
302
- * The ID of another feedback record that this one resolves or responds to
370
+ * Optional. The ID of another feedback record that this one resolves or responds to
303
371
  */
304
372
  resolvesFeedbackId?: string;
305
373
  }
@@ -314,7 +382,7 @@ interface FeedbackRecord {
314
382
  */
315
383
  interface TaskRecord {
316
384
  /**
317
- * Unique identifier for the task
385
+ * Unique identifier for the task (10 timestamp + 1 dash + 4 'task' + 1 dash + max 50 slug = 66 max)
318
386
  */
319
387
  id: string;
320
388
  /**
@@ -322,7 +390,7 @@ interface TaskRecord {
322
390
  */
323
391
  title: string;
324
392
  /**
325
- * Optional. The IDs of the strategic cycles this task belongs to.
393
+ * Optional. The IDs of the strategic cycles this task belongs to. (10 timestamp + 1 dash + 5 'cycle' + 1 dash + max 50 slug = 67 max)
326
394
  */
327
395
  cycleIds?: string[];
328
396
  /**
@@ -338,9 +406,9 @@ interface TaskRecord {
338
406
  */
339
407
  description: string;
340
408
  /**
341
- * List of key:value tags for categorization and role suggestion (e.g., 'skill:react', 'role:agent:developer'). Can be an empty array.
409
+ * Optional. List of key:value tags for categorization and role suggestion (e.g., 'skill:react', 'role:agent:developer').
342
410
  */
343
- tags: string[];
411
+ tags?: string[];
344
412
  /**
345
413
  * Valid links or files, when mentioned
346
414
  */
@@ -400,7 +468,7 @@ interface WorkflowMethodologyRecord {
400
468
  */
401
469
  event?: string;
402
470
  /**
403
- * Signature requirements keyed by guild
471
+ * Signature requirements keyed by role (e.g., 'approver:quality', 'developer:backend')
404
472
  */
405
473
  signatures?: {
406
474
  [k: string]: {
@@ -501,46 +569,7 @@ interface WorkflowMethodologyRecord {
501
569
  * List of agents required for this methodology
502
570
  */
503
571
  required_agents?: {
504
- /**
505
- * Unique agent identifier
506
- */
507
- id: string;
508
- /**
509
- * Agent guild classification
510
- */
511
- gremio: 'design' | 'intelligence' | 'strategy' | 'operations' | 'quality';
512
- engine: {
513
- type: 'local';
514
- runtime?: string;
515
- entrypoint?: string;
516
- function?: string;
517
- } | {
518
- type: 'api';
519
- url?: string;
520
- method?: 'POST' | 'GET';
521
- auth?: {};
522
- } | {
523
- type: 'mcp';
524
- url?: string;
525
- auth?: {};
526
- };
527
- /**
528
- * Event triggers for this agent
529
- */
530
- triggers?: {
531
- /**
532
- * Event that triggers the agent
533
- */
534
- event: string;
535
- /**
536
- * Action the agent should perform
537
- */
538
- action: string;
539
- }[];
540
- /**
541
- * Knowledge files this agent depends on
542
- */
543
- knowledge_dependencies?: string[];
572
+ [k: string]: unknown | undefined;
544
573
  }[];
545
574
  /**
546
575
  * Automation rules linking triggers to agents
@@ -600,53 +629,49 @@ type EmbeddedMetadataRecord$1 = {
600
629
  signatures: [
601
630
  {
602
631
  /**
603
- * The Actor ID of the signer.
632
+ * The Actor ID of the signer (must match ActorRecord.id pattern).
604
633
  */
605
634
  keyId: string;
606
635
  /**
607
- * The context role of the signature (e.g., 'author').
636
+ * The context role of the signature (e.g., 'author', 'reviewer', 'auditor', or 'custom:*').
608
637
  */
609
638
  role: string;
610
639
  /**
611
- * The Ed25519 signature (base64 encoded) of the signature digest.
640
+ * Human-readable note from the signer. Part of the signature digest.
641
+ */
642
+ notes: string;
643
+ /**
644
+ * The Ed25519 signature (base64 encoded, 88 chars with padding) of the signature digest.
612
645
  */
613
646
  signature: string;
614
647
  /**
615
648
  * Unix timestamp of the signature.
616
649
  */
617
650
  timestamp: number;
618
- /**
619
- * ISO 8601 timestamp of the signature.
620
- */
621
- timestamp_iso: string;
622
651
  },
623
652
  ...{
624
653
  /**
625
- * The Actor ID of the signer.
654
+ * The Actor ID of the signer (must match ActorRecord.id pattern).
626
655
  */
627
656
  keyId: string;
628
657
  /**
629
- * The context role of the signature (e.g., 'author').
658
+ * The context role of the signature (e.g., 'author', 'reviewer', 'auditor', or 'custom:*').
630
659
  */
631
660
  role: string;
632
661
  /**
633
- * The Ed25519 signature (base64 encoded) of the signature digest.
662
+ * Human-readable note from the signer. Part of the signature digest.
663
+ */
664
+ notes: string;
665
+ /**
666
+ * The Ed25519 signature (base64 encoded, 88 chars with padding) of the signature digest.
634
667
  */
635
668
  signature: string;
636
669
  /**
637
670
  * Unix timestamp of the signature.
638
671
  */
639
672
  timestamp: number;
640
- /**
641
- * ISO 8601 timestamp of the signature.
642
- */
643
- timestamp_iso: string;
644
673
  }[]
645
674
  ];
646
- /**
647
- * A human-readable audit stamp (e.g., from gitgov audit).
648
- */
649
- audit?: string;
650
675
  };
651
676
  /**
652
677
  * The specific record data, validated against the schema defined by header.type.
@@ -661,13 +686,18 @@ type EmbeddedMetadataRecord$1 = {
661
686
  * This is hardcoded solution but avoids duplication and uses the generated type as source of truth.
662
687
  */
663
688
  type Signature = EmbeddedMetadataRecord$1['header']['signatures'][0];
689
+ /**
690
+ * Extract Header type from the auto-generated base type.
691
+ * This is the complete header structure for EmbeddedMetadata.
692
+ */
693
+ type EmbeddedMetadataHeader = EmbeddedMetadataRecord$1['header'];
664
694
  /**
665
695
  * Generic version of EmbeddedMetadataRecord that accepts any payload type T.
666
696
  * This extends the auto-generated base type but makes the payload generic.
667
697
  * We need to explicitly preserve the header structure due to the index signature in the base type.
668
698
  */
669
699
  type EmbeddedMetadataRecord<T extends GitGovRecordPayload> = {
670
- header: EmbeddedMetadataRecord$1['header'];
700
+ header: EmbeddedMetadataHeader;
671
701
  payload: T;
672
702
  };
673
703
 
@@ -690,6 +720,21 @@ type GitGovRecordPayload = ActorRecord | AgentRecord | CycleRecord | TaskRecord
690
720
  * The canonical type for any record in GitGovernance, wrapping a payload with metadata.
691
721
  */
692
722
  type GitGovRecord = EmbeddedMetadataRecord<GitGovRecordPayload>;
723
+ /**
724
+ * Specific GitGov record types with full metadata (header + payload).
725
+ * These types provide clean, type-safe access to records with their signatures and checksums.
726
+ *
727
+ * @example
728
+ * const taskRecord: GitGovTaskRecord = await taskStore.read(taskId);
729
+ * const authorId = taskRecord.header.signatures[0].keyId;
730
+ */
731
+ type GitGovTaskRecord = EmbeddedMetadataRecord<TaskRecord>;
732
+ type GitGovCycleRecord = EmbeddedMetadataRecord<CycleRecord>;
733
+ type GitGovFeedbackRecord = EmbeddedMetadataRecord<FeedbackRecord>;
734
+ type GitGovExecutionRecord = EmbeddedMetadataRecord<ExecutionRecord>;
735
+ type GitGovChangelogRecord = EmbeddedMetadataRecord<ChangelogRecord>;
736
+ type GitGovActorRecord = EmbeddedMetadataRecord<ActorRecord>;
737
+ type GitGovAgentRecord = EmbeddedMetadataRecord<AgentRecord>;
693
738
  type ActorPayload = Partial<ActorRecord>;
694
739
  type AgentPayload = Partial<AgentRecord>;
695
740
  type CyclePayload = Partial<CycleRecord>;
@@ -715,22 +760,30 @@ type index$j_ChangelogRecord = ChangelogRecord;
715
760
  type index$j_CustomRecord = CustomRecord;
716
761
  type index$j_CyclePayload = CyclePayload;
717
762
  type index$j_CycleRecord = CycleRecord;
763
+ type index$j_EmbeddedMetadataHeader = EmbeddedMetadataHeader;
718
764
  type index$j_EmbeddedMetadataRecord<T extends GitGovRecordPayload> = EmbeddedMetadataRecord<T>;
719
765
  type index$j_ExecutionPayload = ExecutionPayload;
720
766
  type index$j_ExecutionRecord = ExecutionRecord;
721
767
  type index$j_FeedbackPayload = FeedbackPayload;
722
768
  type index$j_FeedbackRecord = FeedbackRecord;
769
+ type index$j_GitGovActorRecord = GitGovActorRecord;
770
+ type index$j_GitGovAgentRecord = GitGovAgentRecord;
771
+ type index$j_GitGovChangelogRecord = GitGovChangelogRecord;
772
+ type index$j_GitGovCycleRecord = GitGovCycleRecord;
723
773
  type index$j_GitGovError = GitGovError;
724
774
  declare const index$j_GitGovError: typeof GitGovError;
775
+ type index$j_GitGovExecutionRecord = GitGovExecutionRecord;
776
+ type index$j_GitGovFeedbackRecord = GitGovFeedbackRecord;
725
777
  type index$j_GitGovRecord = GitGovRecord;
726
778
  type index$j_GitGovRecordPayload = GitGovRecordPayload;
727
779
  type index$j_GitGovRecordType = GitGovRecordType;
780
+ type index$j_GitGovTaskRecord = GitGovTaskRecord;
728
781
  type index$j_Signature = Signature;
729
782
  type index$j_TaskPayload = TaskPayload;
730
783
  type index$j_TaskRecord = TaskRecord;
731
784
  type index$j_WorkflowMethodologyRecord = WorkflowMethodologyRecord;
732
785
  declare namespace index$j {
733
- export { type index$j_ActorPayload as ActorPayload, type index$j_ActorRecord as ActorRecord, type index$j_AgentPayload as AgentPayload, type index$j_AgentRecord as AgentRecord, type index$j_ChangelogPayload as ChangelogPayload, type index$j_ChangelogRecord as ChangelogRecord, type index$j_CustomRecord as CustomRecord, type index$j_CyclePayload as CyclePayload, type index$j_CycleRecord as CycleRecord, type index$j_EmbeddedMetadataRecord as EmbeddedMetadataRecord, type index$j_ExecutionPayload as ExecutionPayload, type index$j_ExecutionRecord as ExecutionRecord, type index$j_FeedbackPayload as FeedbackPayload, type index$j_FeedbackRecord as FeedbackRecord, index$j_GitGovError as GitGovError, type index$j_GitGovRecord as GitGovRecord, type index$j_GitGovRecordPayload as GitGovRecordPayload, type index$j_GitGovRecordType as GitGovRecordType, type index$j_Signature as Signature, type index$j_TaskPayload as TaskPayload, type index$j_TaskRecord as TaskRecord, type index$j_WorkflowMethodologyRecord as WorkflowMethodologyRecord };
786
+ export { type index$j_ActorPayload as ActorPayload, type index$j_ActorRecord as ActorRecord, type index$j_AgentPayload as AgentPayload, type index$j_AgentRecord as AgentRecord, type index$j_ChangelogPayload as ChangelogPayload, type index$j_ChangelogRecord as ChangelogRecord, type index$j_CustomRecord as CustomRecord, type index$j_CyclePayload as CyclePayload, type index$j_CycleRecord as CycleRecord, type index$j_EmbeddedMetadataHeader as EmbeddedMetadataHeader, type index$j_EmbeddedMetadataRecord as EmbeddedMetadataRecord, type index$j_ExecutionPayload as ExecutionPayload, type index$j_ExecutionRecord as ExecutionRecord, type index$j_FeedbackPayload as FeedbackPayload, type index$j_FeedbackRecord as FeedbackRecord, type index$j_GitGovActorRecord as GitGovActorRecord, type index$j_GitGovAgentRecord as GitGovAgentRecord, type index$j_GitGovChangelogRecord as GitGovChangelogRecord, type index$j_GitGovCycleRecord as GitGovCycleRecord, index$j_GitGovError as GitGovError, type index$j_GitGovExecutionRecord as GitGovExecutionRecord, type index$j_GitGovFeedbackRecord as GitGovFeedbackRecord, type index$j_GitGovRecord as GitGovRecord, type index$j_GitGovRecordPayload as GitGovRecordPayload, type index$j_GitGovRecordType as GitGovRecordType, type index$j_GitGovTaskRecord as GitGovTaskRecord, type index$j_Signature as Signature, type index$j_TaskPayload as TaskPayload, type index$j_TaskRecord as TaskRecord, type index$j_WorkflowMethodologyRecord as WorkflowMethodologyRecord };
734
787
  }
735
788
 
736
789
  type StorablePayload = Exclude<GitGovRecordPayload, CustomRecord>;
@@ -847,26 +900,16 @@ type ExecutionCreatedEvent = BaseEvent & {
847
900
 
848
901
  type FeedbackCreatedEvent = BaseEvent & {
849
902
  type: 'feedback.created';
850
- payload: Pick<FeedbackRecord, 'entityType' | 'entityId' | 'type' | 'status' | 'content' | 'assignee'> & {
851
- feedbackId: string;
852
- triggeredBy: string;
853
- };
854
- };
855
- type FeedbackStatusChangedEvent = BaseEvent & {
856
- type: 'feedback.status.changed';
857
- payload: Pick<FeedbackRecord, 'assignee'> & {
903
+ payload: Pick<FeedbackRecord, 'entityType' | 'entityId' | 'type' | 'status' | 'content' | 'assignee' | 'resolvesFeedbackId'> & {
858
904
  feedbackId: string;
859
- oldStatus: FeedbackRecord['status'];
860
- newStatus: FeedbackRecord['status'];
861
905
  triggeredBy: string;
862
906
  };
863
907
  };
864
908
 
865
909
  type ChangelogCreatedEvent = BaseEvent & {
866
910
  type: 'changelog.created';
867
- payload: Pick<ChangelogRecord, 'entityType' | 'entityId' | 'changeType' | 'riskLevel' | 'title' | 'trigger'> & {
911
+ payload: Pick<ChangelogRecord, 'relatedTasks' | 'title' | 'version'> & {
868
912
  changelogId: string;
869
- triggeredBy: string;
870
913
  };
871
914
  };
872
915
 
@@ -887,7 +930,7 @@ type ActorRevokedEvent = BaseEvent & {
887
930
  };
888
931
  type AgentRegisteredEvent = BaseEvent & {
889
932
  type: 'identity.agent.registered';
890
- payload: Pick<AgentRecord, 'guild' | 'engine'> & {
933
+ payload: Pick<AgentRecord, 'engine'> & {
891
934
  agentId: string;
892
935
  correspondingActorId: string;
893
936
  };
@@ -904,7 +947,7 @@ type SystemDailyTickEvent = BaseEvent & {
904
947
  /**
905
948
  * Union type of all possible events
906
949
  */
907
- type GitGovEvent = TaskCreatedEvent | TaskStatusChangedEvent | CycleCreatedEvent | CycleStatusChangedEvent | ExecutionCreatedEvent | FeedbackCreatedEvent | FeedbackStatusChangedEvent | ChangelogCreatedEvent | ActorCreatedEvent | ActorRevokedEvent | AgentRegisteredEvent | SystemDailyTickEvent;
950
+ type GitGovEvent = TaskCreatedEvent | TaskStatusChangedEvent | CycleCreatedEvent | CycleStatusChangedEvent | ExecutionCreatedEvent | FeedbackCreatedEvent | ChangelogCreatedEvent | ActorCreatedEvent | ActorRevokedEvent | AgentRegisteredEvent | SystemDailyTickEvent;
908
951
  /**
909
952
  * Event handler function type
910
953
  */
@@ -927,22 +970,73 @@ type EventSubscription = {
927
970
  };
928
971
  /**
929
972
  * Activity Event for IndexerAdapter activity tracking
973
+ * Uses discriminated unions for type-safe metadata per event type
930
974
  */
931
975
  type ActivityEvent = {
932
976
  timestamp: number;
933
- type: "task_created" | "cycle_created" | "feedback_created" | "changelog_created" | "execution_created" | "actor_created" | "agent_registered";
977
+ type: "task_created";
934
978
  entityId: string;
935
979
  entityTitle: string;
936
980
  actorId?: string;
937
981
  metadata?: {
938
982
  priority?: string;
939
983
  status?: string;
984
+ };
985
+ } | {
986
+ timestamp: number;
987
+ type: "cycle_created";
988
+ entityId: string;
989
+ entityTitle: string;
990
+ actorId?: string;
991
+ metadata?: {
992
+ status?: string;
993
+ };
994
+ } | {
995
+ timestamp: number;
996
+ type: "feedback_created";
997
+ entityId: string;
998
+ entityTitle: string;
999
+ actorId?: string;
1000
+ metadata?: {
940
1001
  type?: string;
941
1002
  assignee?: string;
942
1003
  resolution?: string;
1004
+ };
1005
+ } | {
1006
+ timestamp: number;
1007
+ type: "changelog_created";
1008
+ entityId: string;
1009
+ entityTitle: string;
1010
+ actorId?: string;
1011
+ metadata?: {
1012
+ version?: string;
1013
+ };
1014
+ } | {
1015
+ timestamp: number;
1016
+ type: "execution_created";
1017
+ entityId: string;
1018
+ entityTitle: string;
1019
+ actorId?: string;
1020
+ metadata?: {
943
1021
  executionType?: string;
944
1022
  taskId?: string;
945
1023
  };
1024
+ } | {
1025
+ timestamp: number;
1026
+ type: "actor_created";
1027
+ entityId: string;
1028
+ entityTitle: string;
1029
+ actorId?: string;
1030
+ metadata?: {
1031
+ type?: string;
1032
+ };
1033
+ } | {
1034
+ timestamp: number;
1035
+ type: "agent_registered";
1036
+ entityId: string;
1037
+ entityTitle: string;
1038
+ actorId?: string;
1039
+ metadata?: Record<string, never>;
946
1040
  };
947
1041
 
948
1042
  /**
@@ -969,6 +1063,12 @@ interface IEventStream {
969
1063
  * Clear all subscriptions (for testing/cleanup)
970
1064
  */
971
1065
  clearSubscriptions(): void;
1066
+ /**
1067
+ * Wait for all pending event handlers to complete (for testing)
1068
+ */
1069
+ waitForIdle(options?: {
1070
+ timeout?: number;
1071
+ }): Promise<void>;
972
1072
  }
973
1073
  /**
974
1074
  * Local EventBus implementation using Node.js EventEmitter
@@ -985,6 +1085,7 @@ interface IEventStream {
985
1085
  declare class EventBus implements IEventStream {
986
1086
  private emitter;
987
1087
  private subscriptions;
1088
+ private pendingHandlers;
988
1089
  constructor();
989
1090
  /**
990
1091
  * Publish an event to all subscribers
@@ -1038,6 +1139,28 @@ declare class EventBus implements IEventStream {
1038
1139
  * @returns EventSubscription object
1039
1140
  */
1040
1141
  subscribeToAll(handler: EventHandler<BaseEvent>): EventSubscription;
1142
+ /**
1143
+ * Wait for all pending event handlers to complete.
1144
+ * This is primarily useful for testing to ensure event handlers finish before assertions.
1145
+ *
1146
+ * In production, events are fire-and-forget for performance.
1147
+ * In tests, use this to synchronize and avoid race conditions.
1148
+ *
1149
+ * @param options - Optional configuration
1150
+ * @param options.timeout - Maximum time to wait in ms (default: 5000)
1151
+ * @returns Promise that resolves when all handlers complete or timeout occurs
1152
+ *
1153
+ * @example
1154
+ * ```typescript
1155
+ * await feedbackAdapter.create(...); // publishes event
1156
+ * await eventBus.waitForIdle(); // wait for BacklogAdapter.handleFeedbackCreated()
1157
+ * const task = await backlogAdapter.getTask(taskId);
1158
+ * expect(task.status).toBe('paused'); // now safe to assert
1159
+ * ```
1160
+ */
1161
+ waitForIdle(options?: {
1162
+ timeout?: number;
1163
+ }): Promise<void>;
1041
1164
  }
1042
1165
  /**
1043
1166
  * Singleton instance for application-wide event bus usage
@@ -1069,7 +1192,6 @@ type index$h_EventMetadata = EventMetadata;
1069
1192
  type index$h_EventSubscription = EventSubscription;
1070
1193
  type index$h_ExecutionCreatedEvent = ExecutionCreatedEvent;
1071
1194
  type index$h_FeedbackCreatedEvent = FeedbackCreatedEvent;
1072
- type index$h_FeedbackStatusChangedEvent = FeedbackStatusChangedEvent;
1073
1195
  type index$h_GitGovEvent = GitGovEvent;
1074
1196
  type index$h_IEventStream = IEventStream;
1075
1197
  type index$h_SystemDailyTickEvent = SystemDailyTickEvent;
@@ -1079,7 +1201,7 @@ declare const index$h_eventBus: typeof eventBus;
1079
1201
  declare const index$h_publishEvent: typeof publishEvent;
1080
1202
  declare const index$h_subscribeToEvent: typeof subscribeToEvent;
1081
1203
  declare namespace index$h {
1082
- export { type index$h_ActivityEvent as ActivityEvent, type index$h_ActorCreatedEvent as ActorCreatedEvent, type index$h_ActorRevokedEvent as ActorRevokedEvent, type index$h_AgentRegisteredEvent as AgentRegisteredEvent, type index$h_BaseEvent as BaseEvent, type index$h_ChangelogCreatedEvent as ChangelogCreatedEvent, type index$h_CycleCreatedEvent as CycleCreatedEvent, type index$h_CycleStatusChangedEvent as CycleStatusChangedEvent, index$h_EventBus as EventBus, type index$h_EventHandler as EventHandler, type index$h_EventMetadata as EventMetadata, type index$h_EventSubscription as EventSubscription, type index$h_ExecutionCreatedEvent as ExecutionCreatedEvent, type index$h_FeedbackCreatedEvent as FeedbackCreatedEvent, type index$h_FeedbackStatusChangedEvent as FeedbackStatusChangedEvent, type index$h_GitGovEvent as GitGovEvent, type index$h_IEventStream as IEventStream, type index$h_SystemDailyTickEvent as SystemDailyTickEvent, type index$h_TaskCreatedEvent as TaskCreatedEvent, type index$h_TaskStatusChangedEvent as TaskStatusChangedEvent, index$h_eventBus as eventBus, index$h_publishEvent as publishEvent, index$h_subscribeToEvent as subscribeToEvent };
1204
+ export { type index$h_ActivityEvent as ActivityEvent, type index$h_ActorCreatedEvent as ActorCreatedEvent, type index$h_ActorRevokedEvent as ActorRevokedEvent, type index$h_AgentRegisteredEvent as AgentRegisteredEvent, type index$h_BaseEvent as BaseEvent, type index$h_ChangelogCreatedEvent as ChangelogCreatedEvent, type index$h_CycleCreatedEvent as CycleCreatedEvent, type index$h_CycleStatusChangedEvent as CycleStatusChangedEvent, index$h_EventBus as EventBus, type index$h_EventHandler as EventHandler, type index$h_EventMetadata as EventMetadata, type index$h_EventSubscription as EventSubscription, type index$h_ExecutionCreatedEvent as ExecutionCreatedEvent, type index$h_FeedbackCreatedEvent as FeedbackCreatedEvent, type index$h_GitGovEvent as GitGovEvent, type index$h_IEventStream as IEventStream, type index$h_SystemDailyTickEvent as SystemDailyTickEvent, type index$h_TaskCreatedEvent as TaskCreatedEvent, type index$h_TaskStatusChangedEvent as TaskStatusChangedEvent, index$h_eventBus as eventBus, index$h_publishEvent as publishEvent, index$h_subscribeToEvent as subscribeToEvent };
1083
1205
  }
1084
1206
 
1085
1207
  /**
@@ -1178,15 +1300,22 @@ interface FeedbackAdapterDependencies {
1178
1300
  /**
1179
1301
  * FeedbackAdapter Interface - The Communication Facilitator
1180
1302
  */
1303
+ /**
1304
+ * FeedbackThread structure for conversation trees
1305
+ */
1306
+ interface FeedbackThread {
1307
+ feedback: FeedbackRecord;
1308
+ responses: FeedbackThread[];
1309
+ }
1181
1310
  interface IFeedbackAdapter {
1182
1311
  /**
1183
1312
  * Creates a new FeedbackRecord.
1184
1313
  */
1185
1314
  create(payload: Partial<FeedbackRecord>, actorId: string): Promise<FeedbackRecord>;
1186
1315
  /**
1187
- * Resolves an existing FeedbackRecord.
1316
+ * Helper: Creates a new feedback that "resolves" another (immutable pattern).
1188
1317
  */
1189
- resolve(feedbackId: string, actorId: string): Promise<FeedbackRecord>;
1318
+ resolve(feedbackId: string, actorId: string, content?: string): Promise<FeedbackRecord>;
1190
1319
  /**
1191
1320
  * Gets a specific FeedbackRecord by its ID.
1192
1321
  */
@@ -1199,6 +1328,10 @@ interface IFeedbackAdapter {
1199
1328
  * Gets all FeedbackRecords in the system.
1200
1329
  */
1201
1330
  getAllFeedback(): Promise<FeedbackRecord[]>;
1331
+ /**
1332
+ * Builds the complete conversation tree for a feedback.
1333
+ */
1334
+ getFeedbackThread(feedbackId: string, maxDepth?: number): Promise<FeedbackThread>;
1202
1335
  }
1203
1336
  /**
1204
1337
  * FeedbackAdapter - The Communication Facilitator
@@ -1212,25 +1345,25 @@ declare class FeedbackAdapter implements IFeedbackAdapter {
1212
1345
  private eventBus;
1213
1346
  constructor(dependencies: FeedbackAdapterDependencies);
1214
1347
  /**
1215
- * [EARS-1] Creates a new FeedbackRecord for structured communication between actors.
1348
+ * [EARS-1, EARS-2, EARS-3, EARS-4, EARS-5, EARS-6, EARS-7, EARS-8] Creates a new FeedbackRecord for structured communication between actors.
1216
1349
  *
1217
1350
  * Description: Creates a new FeedbackRecord for structured communication between actors.
1218
1351
  * Implementation: Builds record with status: "open", signs with actorId, persists and emits event.
1219
- * Usage: Invoked by `gitgov feedback add` to create feedback, assignments, blocks.
1352
+ * Usage: Invoked by `gitgov feedback create` to create feedback, assignments, blocks, responses.
1220
1353
  * Returns: Complete and signed FeedbackRecord.
1221
1354
  */
1222
1355
  create(payload: Partial<FeedbackRecord>, actorId: string): Promise<FeedbackRecord>;
1223
1356
  /**
1224
- * [EARS-4] Resolves an existing feedback changing its status to resolved.
1357
+ * [EARS-9, EARS-10, EARS-11, EARS-12] Helper: Creates a new feedback that "resolves" another (immutable).
1225
1358
  *
1226
- * Description: Resolves an existing feedback changing its status to resolved.
1227
- * Implementation: Reads feedback, validates permissions (future), transitions state, signs and emits event.
1228
- * Usage: Invoked by `gitgov feedback resolve` to close conversations and blocks.
1229
- * Returns: Updated FeedbackRecord with new signature.
1359
+ * Description: Helper method that creates a new feedback documenting resolution of another feedback.
1360
+ * Implementation: Verifies original exists, then delegates to create() with immutable pattern.
1361
+ * Usage: Ergonomic helper for common case. For advanced cases (wontfix, approval), use create() directly.
1362
+ * Returns: New FeedbackRecord that points to the original with resolvesFeedbackId.
1230
1363
  */
1231
- resolve(feedbackId: string, actorId: string): Promise<FeedbackRecord>;
1364
+ resolve(feedbackId: string, actorId: string, content?: string): Promise<FeedbackRecord>;
1232
1365
  /**
1233
- * [EARS-7] Gets a specific FeedbackRecord by its ID for query.
1366
+ * [EARS-13, EARS-14] Gets a specific FeedbackRecord by its ID for query.
1234
1367
  *
1235
1368
  * Description: Gets a specific FeedbackRecord by its ID for query.
1236
1369
  * Implementation: Direct read from record store without modifications.
@@ -1239,31 +1372,45 @@ declare class FeedbackAdapter implements IFeedbackAdapter {
1239
1372
  */
1240
1373
  getFeedback(feedbackId: string): Promise<FeedbackRecord | null>;
1241
1374
  /**
1242
- * [EARS-9] Gets all FeedbackRecords associated with a specific entity.
1375
+ * [EARS-15] Gets all FeedbackRecords associated with a specific entity.
1243
1376
  *
1244
1377
  * Description: Gets all FeedbackRecords associated with a specific entity.
1245
1378
  * Implementation: Reads all records and filters by matching entityId.
1246
- * Usage: Invoked by `gitgov feedback list` to display feedback for a task/cycle.
1379
+ * Usage: Invoked by `gitgov feedback list` to display feedback for a task/cycle/execution.
1247
1380
  * Returns: Array of FeedbackRecords filtered for the entity.
1248
1381
  */
1249
1382
  getFeedbackByEntity(entityId: string): Promise<FeedbackRecord[]>;
1250
1383
  /**
1251
- * [EARS-10] Gets all FeedbackRecords in the system for indexation.
1384
+ * [EARS-16] Gets all FeedbackRecords in the system for indexation.
1252
1385
  *
1253
1386
  * Description: Gets all FeedbackRecords in the system for complete indexation.
1254
1387
  * Implementation: Complete read from record store without filters.
1255
- * Usage: Invoked by `gitgov feedback list --all` and by MetricsAdapter for calculations.
1388
+ * Usage: Invoked by `gitgov feedback list` and by MetricsAdapter for calculations.
1256
1389
  * Returns: Complete array of all FeedbackRecords.
1257
1390
  */
1258
1391
  getAllFeedback(): Promise<FeedbackRecord[]>;
1392
+ /**
1393
+ * [EARS-17, EARS-18, EARS-19, EARS-20] Builds the complete conversation tree for a feedback.
1394
+ *
1395
+ * Description: Recursively constructs the conversation tree for a feedback.
1396
+ * Implementation: Reads root feedback, finds all responses, builds tree recursively until maxDepth.
1397
+ * Usage: Invoked by `gitgov feedback thread` and `gitgov feedback show --thread`.
1398
+ * Returns: FeedbackThread object with tree structure.
1399
+ */
1400
+ getFeedbackThread(feedbackId: string, maxDepth?: number): Promise<FeedbackThread>;
1401
+ /**
1402
+ * Private helper: Recursively builds conversation thread.
1403
+ */
1404
+ private buildThread;
1259
1405
  }
1260
1406
 
1261
1407
  type index$f_FeedbackAdapter = FeedbackAdapter;
1262
1408
  declare const index$f_FeedbackAdapter: typeof FeedbackAdapter;
1263
1409
  type index$f_FeedbackAdapterDependencies = FeedbackAdapterDependencies;
1410
+ type index$f_FeedbackThread = FeedbackThread;
1264
1411
  type index$f_IFeedbackAdapter = IFeedbackAdapter;
1265
1412
  declare namespace index$f {
1266
- export { index$f_FeedbackAdapter as FeedbackAdapter, type index$f_FeedbackAdapterDependencies as FeedbackAdapterDependencies, type index$f_IFeedbackAdapter as IFeedbackAdapter };
1413
+ export { index$f_FeedbackAdapter as FeedbackAdapter, type index$f_FeedbackAdapterDependencies as FeedbackAdapterDependencies, type index$f_FeedbackThread as FeedbackThread, type index$f_IFeedbackAdapter as IFeedbackAdapter };
1267
1414
  }
1268
1415
 
1269
1416
  /**
@@ -1359,6 +1506,16 @@ declare namespace index$e {
1359
1506
  export { index$e_ExecutionAdapter as ExecutionAdapter, type index$e_ExecutionAdapterDependencies as ExecutionAdapterDependencies, type index$e_IExecutionAdapter as IExecutionAdapter };
1360
1507
  }
1361
1508
 
1509
+ /**
1510
+ * Options for filtering and sorting changelog lists
1511
+ */
1512
+ interface ChangelogListOptions {
1513
+ tags?: string[];
1514
+ version?: string;
1515
+ limit?: number;
1516
+ sortBy?: 'completedAt' | 'title';
1517
+ sortOrder?: 'asc' | 'desc';
1518
+ }
1362
1519
  /**
1363
1520
  * ChangelogAdapter Dependencies - Facade + Dependency Injection Pattern
1364
1521
  */
@@ -1370,11 +1527,11 @@ interface ChangelogAdapterDependencies {
1370
1527
  cycleStore?: RecordStore<CycleRecord>;
1371
1528
  }
1372
1529
  /**
1373
- * ChangelogAdapter Interface - The Enterprise Historian
1530
+ * ChangelogAdapter Interface - Release Notes & Deliverables Historian
1374
1531
  */
1375
1532
  interface IChangelogAdapter {
1376
1533
  /**
1377
- * Records a significant change in any system entity.
1534
+ * Records a deliverable/release note aggregating multiple tasks.
1378
1535
  */
1379
1536
  create(payload: Partial<ChangelogRecord>, actorId: string): Promise<ChangelogRecord>;
1380
1537
  /**
@@ -1382,23 +1539,23 @@ interface IChangelogAdapter {
1382
1539
  */
1383
1540
  getChangelog(changelogId: string): Promise<ChangelogRecord | null>;
1384
1541
  /**
1385
- * Gets all ChangelogRecords for a specific entity.
1542
+ * Gets all ChangelogRecords for a specific task.
1386
1543
  */
1387
- getChangelogsByEntity(entityId: string, entityType?: string): Promise<ChangelogRecord[]>;
1544
+ getChangelogsByTask(taskId: string): Promise<ChangelogRecord[]>;
1388
1545
  /**
1389
- * Gets all ChangelogRecords in the system.
1546
+ * Gets all ChangelogRecords in the system with optional filtering.
1390
1547
  */
1391
- getAllChangelogs(): Promise<ChangelogRecord[]>;
1548
+ getAllChangelogs(options?: ChangelogListOptions): Promise<ChangelogRecord[]>;
1392
1549
  /**
1393
- * Gets recent ChangelogRecords ordered by timestamp.
1550
+ * Gets recent ChangelogRecords ordered by completedAt.
1394
1551
  */
1395
1552
  getRecentChangelogs(limit: number): Promise<ChangelogRecord[]>;
1396
1553
  }
1397
1554
  /**
1398
- * ChangelogAdapter - The Enterprise Historian
1555
+ * ChangelogAdapter - Release Notes & Deliverables Historian
1399
1556
  *
1400
- * Implements Facade + Dependency Injection Pattern for testeable and configurable orchestration.
1401
- * Acts as Mediator between enterprise changelog system and multi-entity data stores.
1557
+ * Protocol v2: Aggregates N tasks into 1 release note/deliverable.
1558
+ * Focus: Executive communication of delivered value.
1402
1559
  */
1403
1560
  declare class ChangelogAdapter implements IChangelogAdapter {
1404
1561
  private changelogStore;
@@ -1408,58 +1565,44 @@ declare class ChangelogAdapter implements IChangelogAdapter {
1408
1565
  private cycleStore;
1409
1566
  constructor(dependencies: ChangelogAdapterDependencies);
1410
1567
  /**
1411
- * [EARS-1] Records a significant change in any entity with complete context and conditional validation.
1568
+ * [EARS-1] Records a deliverable/release note.
1412
1569
  *
1413
- * Description: Records a significant change in any entity of the ecosystem with complete context and conditional validation.
1414
- * Implementation: Validates entity existence (optional), builds record with factory, validates conditional fields, signs with actorId, persists and emits event.
1415
- * Usage: Invoked by `gitgov changelog add` to document changes in tasks, cycles, agents, systems, configurations.
1416
- * Returns: Complete and signed ChangelogRecord with 19 fields.
1570
+ * Description: Aggregates multiple tasks into a single deliverable/release note.
1571
+ * Implementation: Validates required fields, builds record with factory, signs, persists and emits event.
1572
+ * Usage: Invoked by `gitgov changelog add` to document deliverables.
1573
+ * Returns: Complete and signed ChangelogRecord.
1417
1574
  */
1418
1575
  create(payload: Partial<ChangelogRecord>, actorId: string): Promise<ChangelogRecord>;
1419
1576
  /**
1420
- * [EARS-9] Gets a specific ChangelogRecord by its ID for historical query.
1421
- *
1422
- * Description: Gets a specific ChangelogRecord by its ID for historical query.
1423
- * Implementation: Direct read from record store without modifications.
1424
- * Usage: Invoked by `gitgov changelog show` to display change details.
1425
- * Returns: ChangelogRecord found or null if it doesn't exist.
1577
+ * [EARS-9] Gets a specific ChangelogRecord by its ID.
1426
1578
  */
1427
1579
  getChangelog(changelogId: string): Promise<ChangelogRecord | null>;
1428
1580
  /**
1429
- * [EARS-11] Gets all ChangelogRecords associated with a specific entity.
1430
- *
1431
- * Description: Gets all ChangelogRecords associated with a specific entity with optional type filtering.
1432
- * Implementation: Reads all records and filters by matching entityId, optionally by entityType.
1433
- * Usage: Invoked by `gitgov changelog list` to display history for any system entity.
1434
- * Returns: Array of ChangelogRecords filtered for the entity.
1581
+ * [EARS-11] Gets all ChangelogRecords that include a specific task.
1435
1582
  */
1436
- getChangelogsByEntity(entityId: string, entityType?: string): Promise<ChangelogRecord[]>;
1583
+ getChangelogsByTask(taskId: string): Promise<ChangelogRecord[]>;
1437
1584
  /**
1438
- * [EARS-12] Gets all ChangelogRecords in the system for complete indexation.
1439
- *
1440
- * Description: Gets all ChangelogRecords in the system for complete indexation.
1441
- * Implementation: Complete read from record store without filters.
1442
- * Usage: Invoked by `gitgov changelog list --all` and MetricsAdapter for activity analysis.
1443
- * Returns: Complete array of all ChangelogRecords.
1585
+ * [EARS-11, EARS-12, EARS-13] Gets all ChangelogRecords with optional filtering and sorting.
1444
1586
  */
1445
- getAllChangelogs(): Promise<ChangelogRecord[]>;
1587
+ getAllChangelogs(options?: ChangelogListOptions): Promise<ChangelogRecord[]>;
1446
1588
  /**
1447
- * [EARS-13] Gets recent ChangelogRecords ordered by timestamp for dashboard and monitoring.
1448
- *
1449
- * Description: Gets recent ChangelogRecords ordered by timestamp for dashboard and monitoring.
1450
- * Implementation: Reads all records, sorts by timestamp descending and applies limit.
1451
- * Usage: Invoked by `gitgov changelog list --recent` and dashboard for activity monitoring.
1452
- * Returns: Array of ChangelogRecords limited and ordered by timestamp.
1589
+ * [EARS-13] Gets recent ChangelogRecords ordered by completedAt.
1453
1590
  */
1454
1591
  getRecentChangelogs(limit: number): Promise<ChangelogRecord[]>;
1592
+ /**
1593
+ * Legacy method for backwards compatibility - maps to getChangelogsByTask
1594
+ * @deprecated Use getChangelogsByTask instead
1595
+ */
1596
+ getChangelogsByEntity(entityId: string, _entityType?: string): Promise<ChangelogRecord[]>;
1455
1597
  }
1456
1598
 
1457
1599
  type index$d_ChangelogAdapter = ChangelogAdapter;
1458
1600
  declare const index$d_ChangelogAdapter: typeof ChangelogAdapter;
1459
1601
  type index$d_ChangelogAdapterDependencies = ChangelogAdapterDependencies;
1602
+ type index$d_ChangelogListOptions = ChangelogListOptions;
1460
1603
  type index$d_IChangelogAdapter = IChangelogAdapter;
1461
1604
  declare namespace index$d {
1462
- export { index$d_ChangelogAdapter as ChangelogAdapter, type index$d_ChangelogAdapterDependencies as ChangelogAdapterDependencies, type index$d_IChangelogAdapter as IChangelogAdapter };
1605
+ export { index$d_ChangelogAdapter as ChangelogAdapter, type index$d_ChangelogAdapterDependencies as ChangelogAdapterDependencies, type index$d_ChangelogListOptions as ChangelogListOptions, type index$d_IChangelogAdapter as IChangelogAdapter };
1463
1606
  }
1464
1607
 
1465
1608
  /**
@@ -1701,9 +1844,11 @@ declare class WorkflowMethodologyAdapter implements IWorkflowMethodology {
1701
1844
  */
1702
1845
  private getConfig;
1703
1846
  /**
1704
- * Gets the guild tag from a task's tags array
1847
+ * Determines which signature group to use for validation.
1848
+ * Checks all available signature groups and returns the first one where
1849
+ * the actor has matching capability roles.
1705
1850
  */
1706
- private getTaskGuild;
1851
+ private getApplicableSignatureGroup;
1707
1852
  /**
1708
1853
  * Determines if a state transition is legal according to the methodology
1709
1854
  */
@@ -1776,7 +1921,6 @@ interface IBacklogAdapter {
1776
1921
  moveTasksBetweenCycles(targetCycleId: string, taskIds: string[], sourceCycleId: string): Promise<void>;
1777
1922
  getTasksAssignedToActor(actorId: string): Promise<TaskRecord[]>;
1778
1923
  handleFeedbackCreated(event: FeedbackCreatedEvent): Promise<void>;
1779
- handleFeedbackResolved(event: FeedbackStatusChangedEvent): Promise<void>;
1780
1924
  handleExecutionCreated(event: ExecutionCreatedEvent): Promise<void>;
1781
1925
  handleChangelogCreated(event: ChangelogCreatedEvent): Promise<void>;
1782
1926
  handleCycleStatusChanged(event: CycleStatusChangedEvent): Promise<void>;
@@ -1880,13 +2024,18 @@ declare class BacklogAdapter implements IBacklogAdapter {
1880
2024
  */
1881
2025
  getTasksAssignedToActor(actorId: string): Promise<TaskRecord[]>;
1882
2026
  /**
1883
- * [EARS-31] Handles feedback created events - pauses task if blocking
2027
+ * [EARS-31, EARS-33, EARS-34] Handles feedback created events (Immutable Pattern)
2028
+ *
2029
+ * This handler respects the immutable feedback pattern:
2030
+ * - Case 1: Blocking feedback created → pause task if active/ready
2031
+ * - Case 2: Feedback resolving another feedback → resume task if no more blocks
2032
+ *
2033
+ * The immutable pattern means:
2034
+ * - Original feedbacks NEVER change status
2035
+ * - Resolution is expressed by creating a NEW feedback pointing to the original
2036
+ * - We detect resolution via: entityType='feedback' + status='resolved' + resolvesFeedbackId
1884
2037
  */
1885
2038
  handleFeedbackCreated(event: FeedbackCreatedEvent): Promise<void>;
1886
- /**
1887
- * [EARS-33] Handles feedback resolved events - resumes task if no more blocks
1888
- */
1889
- handleFeedbackResolved(event: FeedbackStatusChangedEvent): Promise<void>;
1890
2039
  /**
1891
2040
  * [EARS-35] Handles execution created events - transitions ready→active on first execution
1892
2041
  */
@@ -1964,13 +2113,19 @@ declare namespace index$a {
1964
2113
  export { index$a_BacklogAdapter as BacklogAdapter, type index$a_BacklogAdapterConfig as BacklogAdapterConfig, type index$a_BacklogAdapterDependencies as BacklogAdapterDependencies, type index$a_IBacklogAdapter as IBacklogAdapter };
1965
2114
  }
1966
2115
 
2116
+ /**
2117
+ * Collection of all records with full GitGov metadata (headers + payloads).
2118
+ * This allows access to signatures, checksums, and other metadata for enrichment.
2119
+ *
2120
+ * @see GitGovTaskRecord - Full record type with header.signatures for author/lastModifier extraction
2121
+ */
1967
2122
  type AllRecords = {
1968
- tasks: TaskRecord[];
1969
- cycles: CycleRecord[];
1970
- feedback: FeedbackRecord[];
1971
- executions: ExecutionRecord[];
1972
- changelogs: ChangelogRecord[];
1973
- actors: ActorRecord[];
2123
+ tasks: GitGovTaskRecord[];
2124
+ cycles: GitGovCycleRecord[];
2125
+ feedback: GitGovFeedbackRecord[];
2126
+ executions: GitGovExecutionRecord[];
2127
+ changelogs: GitGovChangelogRecord[];
2128
+ actors: GitGovActorRecord[];
1974
2129
  };
1975
2130
  /**
1976
2131
  * Enhanced Task Record with calculated activity metadata
@@ -2060,7 +2215,7 @@ interface IIndexerAdapter {
2060
2215
  lastActivityType: EnrichedTaskRecord['lastActivityType'];
2061
2216
  recentActivity: string;
2062
2217
  }>;
2063
- enrichTaskRecord(task: TaskRecord, relatedRecords: AllRecords): Promise<EnrichedTaskRecord>;
2218
+ enrichTaskRecord(task: GitGovTaskRecord, relatedRecords: AllRecords): Promise<EnrichedTaskRecord>;
2064
2219
  isIndexUpToDate(): Promise<boolean>;
2065
2220
  invalidateCache(): Promise<void>;
2066
2221
  }
@@ -2102,27 +2257,28 @@ declare class FileIndexerAdapter implements IIndexerAdapter {
2102
2257
  */
2103
2258
  invalidateCache(): Promise<void>;
2104
2259
  /**
2105
- * Reads all tasks from taskStore
2260
+ * Reads all tasks from taskStore with full metadata (headers + payloads).
2261
+ * Returns complete GitGovTaskRecord objects including signatures for author/lastModifier extraction.
2106
2262
  */
2107
2263
  private readAllTasks;
2108
2264
  /**
2109
- * Reads all cycles from cycleStore
2265
+ * Reads all cycles from cycleStore with full metadata.
2110
2266
  */
2111
2267
  private readAllCycles;
2112
2268
  /**
2113
- * Reads all actors from actorStore (graceful degradation)
2269
+ * Reads all actors from actorStore (graceful degradation) with full metadata.
2114
2270
  */
2115
2271
  private readAllActors;
2116
2272
  /**
2117
- * Reads all feedback from feedbackStore (graceful degradation)
2273
+ * Reads all feedback from feedbackStore (graceful degradation) with full metadata.
2118
2274
  */
2119
2275
  private readAllFeedback;
2120
2276
  /**
2121
- * Reads all executions from executionStore (graceful degradation)
2277
+ * Reads all executions from executionStore (graceful degradation) with full metadata.
2122
2278
  */
2123
2279
  private readAllExecutions;
2124
2280
  /**
2125
- * Reads all changelogs from changelogStore (graceful degradation)
2281
+ * Reads all changelogs from changelogStore (graceful degradation) with full metadata.
2126
2282
  */
2127
2283
  private readAllChangelogs;
2128
2284
  /**
@@ -2156,8 +2312,10 @@ declare class FileIndexerAdapter implements IIndexerAdapter {
2156
2312
  }>;
2157
2313
  /**
2158
2314
  * [EARS-22] Enrich a TaskRecord with activity metadata
2315
+ * @param task - Full GitGovTaskRecord with header.signatures for author/lastModifier extraction
2316
+ * @param relatedRecords - All related records with full metadata
2159
2317
  */
2160
- enrichTaskRecord(task: TaskRecord, relatedRecords: AllRecords): Promise<EnrichedTaskRecord>;
2318
+ enrichTaskRecord(task: GitGovTaskRecord, relatedRecords: AllRecords): Promise<EnrichedTaskRecord>;
2161
2319
  /**
2162
2320
  * Format timestamp as human-readable time ago
2163
2321
  */
@@ -2427,10 +2585,6 @@ declare class ProjectAdapter implements IProjectAdapter {
2427
2585
  * [EARS-3] Processes blueprint template JSON with schema validation creating cycles and tasks
2428
2586
  */
2429
2587
  processBlueprintTemplate(templatePath: string, projectContext: ProjectContext): Promise<TemplateProcessingResult>;
2430
- /**
2431
- * Sets up Kiro IDE integration by always copying GitGovernance hooks
2432
- */
2433
- private setupKiroIntegration;
2434
2588
  /**
2435
2589
  * [EARS-4] Cleans up partial setup artifacts if initialization fails
2436
2590
  */
@@ -2448,6 +2602,7 @@ declare class ProjectAdapter implements IProjectAdapter {
2448
2602
  */
2449
2603
  generateProjectReport(): Promise<ProjectReport>;
2450
2604
  private createDirectoryStructure;
2605
+ private copyAgentPrompt;
2451
2606
  private generateProjectId;
2452
2607
  private persistConfiguration;
2453
2608
  private initializeSession;
@@ -2477,6 +2632,7 @@ type index$6_BacklogAdapterDependencies = BacklogAdapterDependencies;
2477
2632
  type index$6_ChangelogAdapter = ChangelogAdapter;
2478
2633
  declare const index$6_ChangelogAdapter: typeof ChangelogAdapter;
2479
2634
  type index$6_ChangelogAdapterDependencies = ChangelogAdapterDependencies;
2635
+ type index$6_ChangelogListOptions = ChangelogListOptions;
2480
2636
  type index$6_CollaborationMetrics = CollaborationMetrics;
2481
2637
  type index$6_EnrichedTaskRecord = EnrichedTaskRecord;
2482
2638
  type index$6_EnvironmentValidation = EnvironmentValidation;
@@ -2486,6 +2642,7 @@ type index$6_ExecutionAdapterDependencies = ExecutionAdapterDependencies;
2486
2642
  type index$6_FeedbackAdapter = FeedbackAdapter;
2487
2643
  declare const index$6_FeedbackAdapter: typeof FeedbackAdapter;
2488
2644
  type index$6_FeedbackAdapterDependencies = FeedbackAdapterDependencies;
2645
+ type index$6_FeedbackThread = FeedbackThread;
2489
2646
  type index$6_FileIndexerAdapter = FileIndexerAdapter;
2490
2647
  declare const index$6_FileIndexerAdapter: typeof FileIndexerAdapter;
2491
2648
  type index$6_IBacklogAdapter = IBacklogAdapter;
@@ -2526,7 +2683,7 @@ type index$6_WorkflowMethodologyAdapter = WorkflowMethodologyAdapter;
2526
2683
  declare const index$6_WorkflowMethodologyAdapter: typeof WorkflowMethodologyAdapter;
2527
2684
  type index$6_WorkflowMethodologyAdapterDependencies = WorkflowMethodologyAdapterDependencies;
2528
2685
  declare namespace index$6 {
2529
- export { type index$6_AllRecords as AllRecords, index$6_BacklogAdapter as BacklogAdapter, type index$6_BacklogAdapterConfig as BacklogAdapterConfig, type index$6_BacklogAdapterDependencies as BacklogAdapterDependencies, index$6_ChangelogAdapter as ChangelogAdapter, type index$6_ChangelogAdapterDependencies as ChangelogAdapterDependencies, type index$6_CollaborationMetrics as CollaborationMetrics, type index$6_EnrichedTaskRecord as EnrichedTaskRecord, type index$6_EnvironmentValidation as EnvironmentValidation, index$6_ExecutionAdapter as ExecutionAdapter, type index$6_ExecutionAdapterDependencies as ExecutionAdapterDependencies, index$6_FeedbackAdapter as FeedbackAdapter, type index$6_FeedbackAdapterDependencies as FeedbackAdapterDependencies, index$6_FileIndexerAdapter as FileIndexerAdapter, type index$6_IBacklogAdapter as IBacklogAdapter, type index$6_IChangelogAdapter as IChangelogAdapter, type index$6_IExecutionAdapter as IExecutionAdapter, type index$6_IFeedbackAdapter as IFeedbackAdapter, type index$6_IIdentityAdapter as IIdentityAdapter, type index$6_IIndexerAdapter as IIndexerAdapter, type index$6_IMetricsAdapter as IMetricsAdapter, type index$6_IProjectAdapter as IProjectAdapter, type index$6_IWorkflowMethodology as IWorkflowMethodology, index$6_IdentityAdapter as IdentityAdapter, type index$6_IdentityAdapterDependencies as IdentityAdapterDependencies, type index$6_IndexData as IndexData, type index$6_IndexGenerationReport as IndexGenerationReport, type index$6_IndexerAdapterDependencies as IndexerAdapterDependencies, type index$6_IntegrityError as IntegrityError, type index$6_IntegrityReport as IntegrityReport, type index$6_IntegrityWarning as IntegrityWarning, index$6_MetricsAdapter as MetricsAdapter, type index$6_MetricsAdapterDependencies as MetricsAdapterDependencies, type index$6_ProductivityMetrics as ProductivityMetrics, index$6_ProjectAdapter as ProjectAdapter, type index$6_ProjectAdapterDependencies as ProjectAdapterDependencies, type index$6_ProjectContext as ProjectContext, type index$6_ProjectInfo as ProjectInfo, type index$6_ProjectInitOptions as ProjectInitOptions, type index$6_ProjectInitResult as ProjectInitResult, type index$6_ProjectReport as ProjectReport, type index$6_SystemStatus as SystemStatus, type index$6_TaskHealthReport as TaskHealthReport, type index$6_TemplateProcessingResult as TemplateProcessingResult, type index$6_ValidationContext as ValidationContext, index$6_WorkflowMethodologyAdapter as WorkflowMethodologyAdapter, type index$6_WorkflowMethodologyAdapterDependencies as WorkflowMethodologyAdapterDependencies };
2686
+ export { type index$6_AllRecords as AllRecords, index$6_BacklogAdapter as BacklogAdapter, type index$6_BacklogAdapterConfig as BacklogAdapterConfig, type index$6_BacklogAdapterDependencies as BacklogAdapterDependencies, index$6_ChangelogAdapter as ChangelogAdapter, type index$6_ChangelogAdapterDependencies as ChangelogAdapterDependencies, type index$6_ChangelogListOptions as ChangelogListOptions, type index$6_CollaborationMetrics as CollaborationMetrics, type index$6_EnrichedTaskRecord as EnrichedTaskRecord, type index$6_EnvironmentValidation as EnvironmentValidation, index$6_ExecutionAdapter as ExecutionAdapter, type index$6_ExecutionAdapterDependencies as ExecutionAdapterDependencies, index$6_FeedbackAdapter as FeedbackAdapter, type index$6_FeedbackAdapterDependencies as FeedbackAdapterDependencies, type index$6_FeedbackThread as FeedbackThread, index$6_FileIndexerAdapter as FileIndexerAdapter, type index$6_IBacklogAdapter as IBacklogAdapter, type index$6_IChangelogAdapter as IChangelogAdapter, type index$6_IExecutionAdapter as IExecutionAdapter, type index$6_IFeedbackAdapter as IFeedbackAdapter, type index$6_IIdentityAdapter as IIdentityAdapter, type index$6_IIndexerAdapter as IIndexerAdapter, type index$6_IMetricsAdapter as IMetricsAdapter, type index$6_IProjectAdapter as IProjectAdapter, type index$6_IWorkflowMethodology as IWorkflowMethodology, index$6_IdentityAdapter as IdentityAdapter, type index$6_IdentityAdapterDependencies as IdentityAdapterDependencies, type index$6_IndexData as IndexData, type index$6_IndexGenerationReport as IndexGenerationReport, type index$6_IndexerAdapterDependencies as IndexerAdapterDependencies, type index$6_IntegrityError as IntegrityError, type index$6_IntegrityReport as IntegrityReport, type index$6_IntegrityWarning as IntegrityWarning, index$6_MetricsAdapter as MetricsAdapter, type index$6_MetricsAdapterDependencies as MetricsAdapterDependencies, type index$6_ProductivityMetrics as ProductivityMetrics, index$6_ProjectAdapter as ProjectAdapter, type index$6_ProjectAdapterDependencies as ProjectAdapterDependencies, type index$6_ProjectContext as ProjectContext, type index$6_ProjectInfo as ProjectInfo, type index$6_ProjectInitOptions as ProjectInitOptions, type index$6_ProjectInitResult as ProjectInitResult, type index$6_ProjectReport as ProjectReport, type index$6_SystemStatus as SystemStatus, type index$6_TaskHealthReport as TaskHealthReport, type index$6_TemplateProcessingResult as TemplateProcessingResult, type index$6_ValidationContext as ValidationContext, index$6_WorkflowMethodologyAdapter as WorkflowMethodologyAdapter, type index$6_WorkflowMethodologyAdapterDependencies as WorkflowMethodologyAdapterDependencies };
2530
2687
  }
2531
2688
 
2532
2689
  /**
@@ -2537,6 +2694,13 @@ declare function calculatePayloadChecksum(payload: GitGovRecordPayload): string;
2537
2694
  /**
2538
2695
  * Generates a new Ed25519 key pair.
2539
2696
  * @returns A promise that resolves to an object with publicKey and privateKey in base64 format.
2697
+ *
2698
+ * The publicKey is the raw Ed25519 key (32 bytes -> 44 chars in base64).
2699
+ * The privateKey is stored in PKCS8 PEM format for compatibility.
2700
+ *
2701
+ * Note: Node.js crypto does not support 'raw' format directly for Ed25519,
2702
+ * so we extract the raw 32-byte key from the SPKI DER encoding (RFC 8410).
2703
+ * SPKI DER structure: [algorithm identifier (12 bytes)] + [raw public key (32 bytes)]
2540
2704
  */
2541
2705
  declare function generateKeys(): Promise<{
2542
2706
  publicKey: string;
@@ -2545,9 +2709,11 @@ declare function generateKeys(): Promise<{
2545
2709
  /**
2546
2710
  * Creates a signature for a given payload.
2547
2711
  */
2548
- declare function signPayload(payload: GitGovRecordPayload, privateKey: string, keyId: string, role: string): Signature;
2712
+ declare function signPayload(payload: GitGovRecordPayload, privateKey: string, keyId: string, role: string, notes: string): Signature;
2549
2713
  /**
2550
2714
  * Verifies all signatures on a record.
2715
+ *
2716
+ * Reconstructs SPKI DER format from raw Ed25519 key for verification.
2551
2717
  */
2552
2718
  declare function verifySignatures(record: {
2553
2719
  header: {
@@ -2619,17 +2785,72 @@ declare function createWorkflowMethodologyConfig(payload: Partial<WorkflowMethod
2619
2785
  */
2620
2786
  declare function createDefaultWorkflowMethodologyConfig(): Promise<WorkflowMethodologyRecord>;
2621
2787
 
2788
+ /**
2789
+ * Configuration for signature generation
2790
+ * Extends Signature with privateKey for signing
2791
+ */
2792
+ type SignatureConfig = Partial<Pick<Signature, 'keyId' | 'role' | 'notes'>> & {
2793
+ /** Private key for signing (if not provided, creates unsigned test signature) */
2794
+ privateKey?: string;
2795
+ };
2796
+ /**
2797
+ * Options for creating an EmbeddedMetadataRecord
2798
+ */
2799
+ type CreateEmbeddedMetadataOptions = {
2800
+ /** Header configuration (partial override, excludes auto-generated fields) */
2801
+ header?: Partial<Pick<EmbeddedMetadataHeader, 'version' | 'type' | 'schemaUrl' | 'schemaChecksum'>>;
2802
+ /** Signature configuration (if not provided, uses default test signature) */
2803
+ signature?: SignatureConfig;
2804
+ /** Custom signatures array (if provided, overrides signature config) */
2805
+ signatures?: Signature[];
2806
+ };
2807
+ /**
2808
+ * Creates a test signature for development/testing purposes (unsigned)
2809
+ * Use this only for testing when you don't have a real private key
2810
+ *
2811
+ * @param keyId - The key ID for the signature (default: 'human:test-user')
2812
+ * @param role - The role for the signature (default: 'author')
2813
+ * @param notes - Notes for the signature (default: 'Test signature - unsigned')
2814
+ * @returns Signature object (with dummy signature value)
2815
+ */
2816
+ declare function createTestSignature(keyId?: string, role?: string, notes?: string): Signature;
2817
+ /**
2818
+ * Creates a complete EmbeddedMetadataRecord with validation
2819
+ *
2820
+ * @param payload - The record payload (ActorRecord, TaskRecord, etc.)
2821
+ * @param options - Optional configuration for the embedded metadata
2822
+ * @returns Promise<EmbeddedMetadataRecord<T>> - The validated embedded metadata record
2823
+ *
2824
+ * @example
2825
+ * ```typescript
2826
+ * const actorPayload: ActorRecord = {
2827
+ * id: 'human:john-doe',
2828
+ * type: 'human',
2829
+ * displayName: 'John Doe',
2830
+ * publicKey: 'abc123...',
2831
+ * roles: ['developer']
2832
+ * };
2833
+ *
2834
+ * const embedded = await createEmbeddedMetadataRecord(actorPayload);
2835
+ * ```
2836
+ */
2837
+ declare function createEmbeddedMetadataRecord<T extends GitGovRecordPayload>(payload: T, options?: CreateEmbeddedMetadataOptions): Promise<EmbeddedMetadataRecord<T>>;
2838
+
2839
+ type index$4_CreateEmbeddedMetadataOptions = CreateEmbeddedMetadataOptions;
2840
+ type index$4_SignatureConfig = SignatureConfig;
2622
2841
  declare const index$4_createActorRecord: typeof createActorRecord;
2623
2842
  declare const index$4_createAgentRecord: typeof createAgentRecord;
2624
2843
  declare const index$4_createChangelogRecord: typeof createChangelogRecord;
2625
2844
  declare const index$4_createCycleRecord: typeof createCycleRecord;
2626
2845
  declare const index$4_createDefaultWorkflowMethodologyConfig: typeof createDefaultWorkflowMethodologyConfig;
2846
+ declare const index$4_createEmbeddedMetadataRecord: typeof createEmbeddedMetadataRecord;
2627
2847
  declare const index$4_createExecutionRecord: typeof createExecutionRecord;
2628
2848
  declare const index$4_createFeedbackRecord: typeof createFeedbackRecord;
2629
2849
  declare const index$4_createTaskRecord: typeof createTaskRecord;
2850
+ declare const index$4_createTestSignature: typeof createTestSignature;
2630
2851
  declare const index$4_createWorkflowMethodologyConfig: typeof createWorkflowMethodologyConfig;
2631
2852
  declare namespace index$4 {
2632
- export { index$4_createActorRecord as createActorRecord, index$4_createAgentRecord as createAgentRecord, index$4_createChangelogRecord as createChangelogRecord, index$4_createCycleRecord as createCycleRecord, index$4_createDefaultWorkflowMethodologyConfig as createDefaultWorkflowMethodologyConfig, index$4_createExecutionRecord as createExecutionRecord, index$4_createFeedbackRecord as createFeedbackRecord, index$4_createTaskRecord as createTaskRecord, index$4_createWorkflowMethodologyConfig as createWorkflowMethodologyConfig };
2853
+ export { type index$4_CreateEmbeddedMetadataOptions as CreateEmbeddedMetadataOptions, type index$4_SignatureConfig as SignatureConfig, index$4_createActorRecord as createActorRecord, index$4_createAgentRecord as createAgentRecord, index$4_createChangelogRecord as createChangelogRecord, index$4_createCycleRecord as createCycleRecord, index$4_createDefaultWorkflowMethodologyConfig as createDefaultWorkflowMethodologyConfig, index$4_createEmbeddedMetadataRecord as createEmbeddedMetadataRecord, index$4_createExecutionRecord as createExecutionRecord, index$4_createFeedbackRecord as createFeedbackRecord, index$4_createTaskRecord as createTaskRecord, index$4_createTestSignature as createTestSignature, index$4_createWorkflowMethodologyConfig as createWorkflowMethodologyConfig };
2633
2854
  }
2634
2855
 
2635
2856
  type LogLevel = "debug" | "info" | "warn" | "error" | "silent";
@@ -2688,6 +2909,8 @@ declare const Schemas: {
2688
2909
  };
2689
2910
  publicKey: {
2690
2911
  type: string;
2912
+ minLength: number;
2913
+ maxLength: number;
2691
2914
  description: string;
2692
2915
  };
2693
2916
  roles: {
@@ -2745,27 +2968,29 @@ declare const Schemas: {
2745
2968
  enum: string[];
2746
2969
  default: string;
2747
2970
  };
2748
- guild: {
2749
- type: string;
2750
- enum: string[];
2751
- };
2752
2971
  triggers: {
2753
2972
  type: string;
2973
+ default: never[];
2974
+ description: string;
2754
2975
  items: {
2755
2976
  type: string;
2756
2977
  properties: {
2757
2978
  type: {
2758
2979
  type: string;
2759
2980
  enum: string[];
2981
+ description: string;
2760
2982
  };
2761
2983
  };
2762
2984
  required: string[];
2985
+ additionalProperties: boolean;
2763
2986
  };
2764
2987
  };
2765
2988
  knowledge_dependencies: {
2766
2989
  type: string;
2990
+ default: never[];
2767
2991
  items: {
2768
2992
  type: string;
2993
+ description: string;
2769
2994
  };
2770
2995
  };
2771
2996
  prompt_engine_requirements: {
@@ -2785,67 +3010,465 @@ declare const Schemas: {
2785
3010
  };
2786
3011
  };
2787
3012
  };
3013
+ metadata: {
3014
+ type: string;
3015
+ description: string;
3016
+ additionalProperties: boolean;
3017
+ };
2788
3018
  engine: {
2789
3019
  type: string;
2790
3020
  oneOf: ({
2791
3021
  required: string[];
3022
+ additionalProperties: boolean;
2792
3023
  properties: {
2793
3024
  type: {
2794
3025
  const: string;
2795
3026
  };
2796
3027
  runtime: {
2797
3028
  type: string;
3029
+ description: string;
2798
3030
  };
2799
3031
  entrypoint: {
2800
3032
  type: string;
3033
+ description: string;
2801
3034
  };
2802
3035
  function: {
2803
3036
  type: string;
3037
+ description: string;
2804
3038
  };
2805
3039
  url?: never;
2806
3040
  method?: never;
2807
3041
  auth?: never;
3042
+ protocol?: never;
3043
+ config?: never;
2808
3044
  };
2809
3045
  } | {
2810
3046
  required: string[];
3047
+ additionalProperties: boolean;
2811
3048
  properties: {
2812
3049
  type: {
2813
3050
  const: string;
2814
3051
  };
2815
3052
  url: {
2816
3053
  type: string;
3054
+ format: string;
3055
+ description: string;
2817
3056
  };
2818
3057
  method: {
2819
3058
  type: string;
2820
3059
  enum: string[];
3060
+ default: string;
2821
3061
  };
2822
3062
  auth: {
2823
3063
  type: string;
2824
- };
2825
- runtime?: never;
2826
- entrypoint?: never;
2827
- function?: never;
2828
- };
2829
- } | {
2830
- required: string[];
2831
- properties: {
2832
- type: {
2833
- const: string;
3064
+ description: string;
3065
+ additionalProperties: boolean;
3066
+ properties: {
3067
+ type: {
3068
+ type: string;
3069
+ enum: string[];
3070
+ description: string;
3071
+ };
3072
+ secret_key: {
3073
+ type: string;
3074
+ description: string;
3075
+ };
3076
+ token: {
3077
+ type: string;
3078
+ description: string;
3079
+ };
3080
+ };
3081
+ };
3082
+ runtime?: never;
3083
+ entrypoint?: never;
3084
+ function?: never;
3085
+ protocol?: never;
3086
+ config?: never;
3087
+ };
3088
+ } | {
3089
+ required: string[];
3090
+ additionalProperties: boolean;
3091
+ properties: {
3092
+ type: {
3093
+ const: string;
2834
3094
  };
2835
3095
  url: {
2836
3096
  type: string;
3097
+ format: string;
3098
+ description: string;
2837
3099
  };
2838
3100
  auth: {
2839
3101
  type: string;
3102
+ description: string;
3103
+ additionalProperties: boolean;
3104
+ properties: {
3105
+ type: {
3106
+ type: string;
3107
+ enum: string[];
3108
+ description: string;
3109
+ };
3110
+ secret_key: {
3111
+ type: string;
3112
+ description: string;
3113
+ };
3114
+ token: {
3115
+ type: string;
3116
+ description: string;
3117
+ };
3118
+ };
2840
3119
  };
2841
3120
  runtime?: never;
2842
3121
  entrypoint?: never;
2843
3122
  function?: never;
2844
3123
  method?: never;
3124
+ protocol?: never;
3125
+ config?: never;
3126
+ };
3127
+ } | {
3128
+ required: string[];
3129
+ additionalProperties: boolean;
3130
+ properties: {
3131
+ type: {
3132
+ const: string;
3133
+ };
3134
+ protocol: {
3135
+ type: string;
3136
+ description: string;
3137
+ };
3138
+ config: {
3139
+ type: string;
3140
+ description: string;
3141
+ };
3142
+ runtime?: never;
3143
+ entrypoint?: never;
3144
+ function?: never;
3145
+ url?: never;
3146
+ method?: never;
3147
+ auth?: never;
2845
3148
  };
2846
3149
  })[];
2847
3150
  };
2848
3151
  };
3152
+ examples: ({
3153
+ id: string;
3154
+ status: string;
3155
+ engine: {
3156
+ type: string;
3157
+ runtime: string;
3158
+ entrypoint: string;
3159
+ function: string;
3160
+ url?: never;
3161
+ method?: never;
3162
+ auth?: never;
3163
+ protocol?: never;
3164
+ config?: never;
3165
+ };
3166
+ metadata: {
3167
+ purpose: string;
3168
+ maintainer: string;
3169
+ framework?: never;
3170
+ version?: never;
3171
+ model?: never;
3172
+ deployment?: never;
3173
+ cost_per_invocation?: never;
3174
+ currency?: never;
3175
+ max_tokens?: never;
3176
+ ide?: never;
3177
+ tool?: never;
3178
+ accepts_tools?: never;
3179
+ provider?: never;
3180
+ supported_languages?: never;
3181
+ max_chars_per_request?: never;
3182
+ experimental?: never;
3183
+ };
3184
+ triggers: {
3185
+ type: string;
3186
+ }[];
3187
+ knowledge_dependencies: string[];
3188
+ prompt_engine_requirements?: never;
3189
+ } | {
3190
+ id: string;
3191
+ status: string;
3192
+ engine: {
3193
+ type: string;
3194
+ url: string;
3195
+ method: string;
3196
+ auth: {
3197
+ type: string;
3198
+ secret_key?: never;
3199
+ };
3200
+ runtime?: never;
3201
+ entrypoint?: never;
3202
+ function?: never;
3203
+ protocol?: never;
3204
+ config?: never;
3205
+ };
3206
+ metadata: {
3207
+ framework: string;
3208
+ version: string;
3209
+ model: string;
3210
+ deployment: {
3211
+ provider: string;
3212
+ service: string;
3213
+ region: string;
3214
+ runtime?: never;
3215
+ image?: never;
3216
+ port?: never;
3217
+ };
3218
+ cost_per_invocation: number;
3219
+ currency: string;
3220
+ purpose?: never;
3221
+ maintainer?: never;
3222
+ max_tokens?: never;
3223
+ ide?: never;
3224
+ tool?: never;
3225
+ accepts_tools?: never;
3226
+ provider?: never;
3227
+ supported_languages?: never;
3228
+ max_chars_per_request?: never;
3229
+ experimental?: never;
3230
+ };
3231
+ triggers: {
3232
+ type: string;
3233
+ event: string;
3234
+ }[];
3235
+ knowledge_dependencies: string[];
3236
+ prompt_engine_requirements?: never;
3237
+ } | {
3238
+ id: string;
3239
+ status: string;
3240
+ engine: {
3241
+ type: string;
3242
+ url: string;
3243
+ method: string;
3244
+ auth: {
3245
+ type: string;
3246
+ secret_key?: never;
3247
+ };
3248
+ runtime?: never;
3249
+ entrypoint?: never;
3250
+ function?: never;
3251
+ protocol?: never;
3252
+ config?: never;
3253
+ };
3254
+ metadata: {
3255
+ framework: string;
3256
+ version: string;
3257
+ model: string;
3258
+ deployment: {
3259
+ runtime: string;
3260
+ image: string;
3261
+ port: number;
3262
+ provider?: never;
3263
+ service?: never;
3264
+ region?: never;
3265
+ };
3266
+ max_tokens: number;
3267
+ purpose?: never;
3268
+ maintainer?: never;
3269
+ cost_per_invocation?: never;
3270
+ currency?: never;
3271
+ ide?: never;
3272
+ tool?: never;
3273
+ accepts_tools?: never;
3274
+ provider?: never;
3275
+ supported_languages?: never;
3276
+ max_chars_per_request?: never;
3277
+ experimental?: never;
3278
+ };
3279
+ triggers: {
3280
+ type: string;
3281
+ event: string;
3282
+ }[];
3283
+ knowledge_dependencies?: never;
3284
+ prompt_engine_requirements?: never;
3285
+ } | {
3286
+ id: string;
3287
+ status: string;
3288
+ engine: {
3289
+ type: string;
3290
+ url: string;
3291
+ auth: {
3292
+ type: string;
3293
+ secret_key?: never;
3294
+ };
3295
+ runtime?: never;
3296
+ entrypoint?: never;
3297
+ function?: never;
3298
+ method?: never;
3299
+ protocol?: never;
3300
+ config?: never;
3301
+ };
3302
+ metadata: {
3303
+ ide: string;
3304
+ tool: string;
3305
+ accepts_tools: string[];
3306
+ purpose?: never;
3307
+ maintainer?: never;
3308
+ framework?: never;
3309
+ version?: never;
3310
+ model?: never;
3311
+ deployment?: never;
3312
+ cost_per_invocation?: never;
3313
+ currency?: never;
3314
+ max_tokens?: never;
3315
+ provider?: never;
3316
+ supported_languages?: never;
3317
+ max_chars_per_request?: never;
3318
+ experimental?: never;
3319
+ };
3320
+ knowledge_dependencies: string[];
3321
+ triggers: {
3322
+ type: string;
3323
+ event: string;
3324
+ }[];
3325
+ prompt_engine_requirements?: never;
3326
+ } | {
3327
+ id: string;
3328
+ status: string;
3329
+ engine: {
3330
+ type: string;
3331
+ url: string;
3332
+ method: string;
3333
+ auth: {
3334
+ type: string;
3335
+ secret_key: string;
3336
+ };
3337
+ runtime?: never;
3338
+ entrypoint?: never;
3339
+ function?: never;
3340
+ protocol?: never;
3341
+ config?: never;
3342
+ };
3343
+ metadata: {
3344
+ provider: string;
3345
+ supported_languages: string[];
3346
+ max_chars_per_request: number;
3347
+ purpose?: never;
3348
+ maintainer?: never;
3349
+ framework?: never;
3350
+ version?: never;
3351
+ model?: never;
3352
+ deployment?: never;
3353
+ cost_per_invocation?: never;
3354
+ currency?: never;
3355
+ max_tokens?: never;
3356
+ ide?: never;
3357
+ tool?: never;
3358
+ accepts_tools?: never;
3359
+ experimental?: never;
3360
+ };
3361
+ triggers: {
3362
+ type: string;
3363
+ }[];
3364
+ knowledge_dependencies?: never;
3365
+ prompt_engine_requirements?: never;
3366
+ } | {
3367
+ id: string;
3368
+ status: string;
3369
+ engine: {
3370
+ type: string;
3371
+ protocol: string;
3372
+ config: {
3373
+ endpoint: string;
3374
+ version: string;
3375
+ capabilities: string[];
3376
+ };
3377
+ runtime?: never;
3378
+ entrypoint?: never;
3379
+ function?: never;
3380
+ url?: never;
3381
+ method?: never;
3382
+ auth?: never;
3383
+ };
3384
+ metadata: {
3385
+ purpose: string;
3386
+ experimental: boolean;
3387
+ maintainer?: never;
3388
+ framework?: never;
3389
+ version?: never;
3390
+ model?: never;
3391
+ deployment?: never;
3392
+ cost_per_invocation?: never;
3393
+ currency?: never;
3394
+ max_tokens?: never;
3395
+ ide?: never;
3396
+ tool?: never;
3397
+ accepts_tools?: never;
3398
+ provider?: never;
3399
+ supported_languages?: never;
3400
+ max_chars_per_request?: never;
3401
+ };
3402
+ triggers: {
3403
+ type: string;
3404
+ cron: string;
3405
+ }[];
3406
+ knowledge_dependencies?: never;
3407
+ prompt_engine_requirements?: never;
3408
+ } | {
3409
+ id: string;
3410
+ engine: {
3411
+ type: string;
3412
+ runtime?: never;
3413
+ entrypoint?: never;
3414
+ function?: never;
3415
+ url?: never;
3416
+ method?: never;
3417
+ auth?: never;
3418
+ protocol?: never;
3419
+ config?: never;
3420
+ };
3421
+ status?: never;
3422
+ metadata?: never;
3423
+ triggers?: never;
3424
+ knowledge_dependencies?: never;
3425
+ prompt_engine_requirements?: never;
3426
+ } | {
3427
+ id: string;
3428
+ status: string;
3429
+ engine: {
3430
+ type: string;
3431
+ url: string;
3432
+ runtime?: never;
3433
+ entrypoint?: never;
3434
+ function?: never;
3435
+ method?: never;
3436
+ auth?: never;
3437
+ protocol?: never;
3438
+ config?: never;
3439
+ };
3440
+ knowledge_dependencies: string[];
3441
+ triggers: {
3442
+ type: string;
3443
+ }[];
3444
+ metadata?: never;
3445
+ prompt_engine_requirements?: never;
3446
+ } | {
3447
+ id: string;
3448
+ status: string;
3449
+ engine: {
3450
+ type: string;
3451
+ runtime: string;
3452
+ entrypoint: string;
3453
+ function: string;
3454
+ url?: never;
3455
+ method?: never;
3456
+ auth?: never;
3457
+ protocol?: never;
3458
+ config?: never;
3459
+ };
3460
+ prompt_engine_requirements: {
3461
+ roles: string[];
3462
+ skills: string[];
3463
+ };
3464
+ knowledge_dependencies: string[];
3465
+ triggers: {
3466
+ type: string;
3467
+ event: string;
3468
+ filter: string;
3469
+ }[];
3470
+ metadata?: never;
3471
+ })[];
2849
3472
  };
2850
3473
  readonly ChangelogRecord: {
2851
3474
  $schema: string;
@@ -2859,27 +3482,16 @@ declare const Schemas: {
2859
3482
  id: {
2860
3483
  type: string;
2861
3484
  pattern: string;
3485
+ maxLength: number;
2862
3486
  description: string;
2863
- };
2864
- entityType: {
2865
- type: string;
2866
- enum: string[];
2867
- description: string;
2868
- };
2869
- entityId: {
2870
- type: string;
2871
- description: string;
2872
- };
2873
- changeType: {
2874
- type: string;
2875
- enum: string[];
2876
- description: string;
3487
+ examples: string[];
2877
3488
  };
2878
3489
  title: {
2879
3490
  type: string;
2880
3491
  minLength: number;
2881
3492
  maxLength: number;
2882
3493
  description: string;
3494
+ examples: string[];
2883
3495
  };
2884
3496
  description: {
2885
3497
  type: string;
@@ -2887,145 +3499,104 @@ declare const Schemas: {
2887
3499
  maxLength: number;
2888
3500
  description: string;
2889
3501
  };
2890
- timestamp: {
2891
- type: string;
2892
- minimum: number;
2893
- description: string;
2894
- };
2895
- trigger: {
2896
- type: string;
2897
- enum: string[];
2898
- description: string;
2899
- };
2900
- triggeredBy: {
3502
+ relatedTasks: {
2901
3503
  type: string;
3504
+ items: {
3505
+ type: string;
3506
+ pattern: string;
3507
+ };
3508
+ minItems: number;
2902
3509
  description: string;
2903
3510
  };
2904
- reason: {
2905
- type: string;
2906
- minLength: number;
2907
- maxLength: number;
2908
- description: string;
2909
- };
2910
- riskLevel: {
3511
+ completedAt: {
2911
3512
  type: string;
2912
- enum: string[];
3513
+ minimum: number;
2913
3514
  description: string;
2914
3515
  };
2915
- affectedSystems: {
3516
+ relatedCycles: {
2916
3517
  type: string;
2917
3518
  items: {
2918
3519
  type: string;
3520
+ pattern: string;
2919
3521
  };
3522
+ default: never[];
2920
3523
  description: string;
2921
3524
  };
2922
- usersAffected: {
3525
+ relatedExecutions: {
2923
3526
  type: string;
2924
- minimum: number;
3527
+ items: {
3528
+ type: string;
3529
+ pattern: string;
3530
+ };
3531
+ default: never[];
2925
3532
  description: string;
2926
3533
  };
2927
- downtime: {
3534
+ version: {
2928
3535
  type: string;
2929
- minimum: number;
3536
+ minLength: number;
3537
+ maxLength: number;
2930
3538
  description: string;
3539
+ examples: string[];
2931
3540
  };
2932
- files: {
3541
+ tags: {
2933
3542
  type: string;
2934
3543
  items: {
2935
3544
  type: string;
3545
+ pattern: string;
2936
3546
  };
3547
+ default: never[];
2937
3548
  description: string;
2938
3549
  };
2939
3550
  commits: {
2940
3551
  type: string;
2941
3552
  items: {
2942
3553
  type: string;
3554
+ maxLength: number;
2943
3555
  };
3556
+ default: never[];
2944
3557
  description: string;
2945
3558
  };
2946
- rollbackInstructions: {
3559
+ files: {
2947
3560
  type: string;
2948
- minLength: number;
2949
- maxLength: number;
3561
+ items: {
3562
+ type: string;
3563
+ maxLength: number;
3564
+ };
3565
+ default: never[];
2950
3566
  description: string;
2951
3567
  };
2952
- references: {
3568
+ notes: {
2953
3569
  type: string;
2954
- additionalProperties: boolean;
2955
- properties: {
2956
- tasks: {
2957
- type: string;
2958
- items: {
2959
- type: string;
2960
- };
2961
- description: string;
2962
- };
2963
- cycles: {
2964
- type: string;
2965
- items: {
2966
- type: string;
2967
- };
2968
- description: string;
2969
- };
2970
- executions: {
2971
- type: string;
2972
- items: {
2973
- type: string;
2974
- };
2975
- description: string;
2976
- };
2977
- changelogs: {
2978
- type: string;
2979
- items: {
2980
- type: string;
2981
- };
2982
- description: string;
2983
- };
2984
- };
3570
+ maxLength: number;
2985
3571
  description: string;
2986
3572
  };
2987
3573
  };
2988
3574
  examples: ({
2989
3575
  id: string;
2990
- entityType: string;
2991
- entityId: string;
2992
- changeType: string;
2993
3576
  title: string;
2994
3577
  description: string;
2995
- timestamp: number;
2996
- trigger: string;
2997
- triggeredBy: string;
2998
- reason: string;
2999
- riskLevel: string;
3000
- files: string[];
3578
+ relatedTasks: string[];
3579
+ completedAt: number;
3580
+ relatedCycles: string[];
3581
+ relatedExecutions: string[];
3582
+ version: string;
3583
+ tags: string[];
3001
3584
  commits: string[];
3002
- references: {
3003
- tasks: string[];
3004
- executions: string[];
3005
- };
3006
- affectedSystems?: never;
3007
- usersAffected?: never;
3008
- downtime?: never;
3009
- rollbackInstructions?: never;
3585
+ files: string[];
3586
+ notes: string;
3010
3587
  } | {
3011
3588
  id: string;
3012
- entityType: string;
3013
- entityId: string;
3014
- changeType: string;
3015
3589
  title: string;
3016
3590
  description: string;
3017
- timestamp: number;
3018
- trigger: string;
3019
- triggeredBy: string;
3020
- reason: string;
3021
- riskLevel: string;
3022
- affectedSystems: string[];
3023
- usersAffected: number;
3024
- downtime: number;
3025
- rollbackInstructions: string;
3591
+ relatedTasks: string[];
3592
+ completedAt: number;
3593
+ version: string;
3594
+ tags: string[];
3026
3595
  commits: string[];
3596
+ notes: string;
3597
+ relatedCycles?: never;
3598
+ relatedExecutions?: never;
3027
3599
  files?: never;
3028
- references?: never;
3029
3600
  })[];
3030
3601
  };
3031
3602
  readonly CycleRecord: {
@@ -3040,13 +3611,16 @@ declare const Schemas: {
3040
3611
  id: {
3041
3612
  type: string;
3042
3613
  pattern: string;
3614
+ maxLength: number;
3043
3615
  description: string;
3616
+ examples: string[];
3044
3617
  };
3045
3618
  title: {
3046
3619
  type: string;
3047
3620
  minLength: number;
3048
3621
  maxLength: number;
3049
3622
  description: string;
3623
+ examples: string[];
3050
3624
  };
3051
3625
  status: {
3052
3626
  type: string;
@@ -3058,39 +3632,58 @@ declare const Schemas: {
3058
3632
  items: {
3059
3633
  type: string;
3060
3634
  pattern: string;
3635
+ maxLength: number;
3061
3636
  };
3637
+ default: never[];
3638
+ description: string;
3639
+ examples: string[][];
3062
3640
  };
3063
3641
  childCycleIds: {
3064
3642
  type: string;
3065
3643
  items: {
3066
3644
  type: string;
3067
3645
  pattern: string;
3646
+ maxLength: number;
3068
3647
  };
3648
+ default: never[];
3069
3649
  description: string;
3650
+ examples: string[][];
3070
3651
  };
3071
3652
  tags: {
3072
3653
  type: string;
3073
3654
  items: {
3074
3655
  type: string;
3075
3656
  pattern: string;
3657
+ maxLength: number;
3076
3658
  };
3077
3659
  default: never[];
3078
3660
  description: string;
3661
+ examples: string[][];
3079
3662
  };
3080
3663
  notes: {
3081
3664
  type: string;
3665
+ minLength: number;
3082
3666
  maxLength: number;
3083
3667
  description: string;
3084
3668
  };
3085
3669
  };
3086
- examples: {
3670
+ examples: ({
3087
3671
  id: string;
3088
3672
  title: string;
3089
3673
  status: string;
3090
3674
  taskIds: string[];
3091
3675
  tags: string[];
3092
3676
  notes: string;
3093
- }[];
3677
+ childCycleIds?: never;
3678
+ } | {
3679
+ id: string;
3680
+ title: string;
3681
+ status: string;
3682
+ childCycleIds: string[];
3683
+ tags: string[];
3684
+ notes: string;
3685
+ taskIds?: never;
3686
+ })[];
3094
3687
  };
3095
3688
  readonly EmbeddedMetadata: {
3096
3689
  $schema: string;
@@ -3134,35 +3727,37 @@ declare const Schemas: {
3134
3727
  properties: {
3135
3728
  keyId: {
3136
3729
  type: string;
3730
+ pattern: string;
3137
3731
  description: string;
3138
3732
  };
3139
3733
  role: {
3140
3734
  type: string;
3735
+ pattern: string;
3736
+ minLength: number;
3737
+ maxLength: number;
3141
3738
  description: string;
3142
3739
  };
3143
- signature: {
3740
+ notes: {
3144
3741
  type: string;
3742
+ minLength: number;
3743
+ maxLength: number;
3145
3744
  description: string;
3146
3745
  };
3147
- timestamp: {
3746
+ signature: {
3148
3747
  type: string;
3748
+ pattern: string;
3149
3749
  description: string;
3150
3750
  };
3151
- timestamp_iso: {
3751
+ timestamp: {
3152
3752
  type: string;
3153
3753
  description: string;
3154
3754
  };
3155
3755
  };
3156
3756
  required: string[];
3757
+ additionalProperties: boolean;
3157
3758
  };
3158
3759
  description: string;
3159
3760
  };
3160
- audit: {
3161
- type: string;
3162
- minLength: number;
3163
- maxLength: number;
3164
- description: string;
3165
- };
3166
3761
  };
3167
3762
  required: string[];
3168
3763
  additionalProperties: boolean;
@@ -3220,7 +3815,7 @@ declare const Schemas: {
3220
3815
  };
3221
3816
  else: boolean;
3222
3817
  })[];
3223
- examples: {
3818
+ examples: ({
3224
3819
  header: {
3225
3820
  version: string;
3226
3821
  type: string;
@@ -3228,9 +3823,9 @@ declare const Schemas: {
3228
3823
  signatures: {
3229
3824
  keyId: string;
3230
3825
  role: string;
3826
+ notes: string;
3231
3827
  signature: string;
3232
3828
  timestamp: number;
3233
- timestamp_iso: string;
3234
3829
  }[];
3235
3830
  };
3236
3831
  payload: {
@@ -3239,8 +3834,69 @@ declare const Schemas: {
3239
3834
  priority: string;
3240
3835
  description: string;
3241
3836
  tags: string[];
3837
+ taskId?: never;
3838
+ type?: never;
3839
+ title?: never;
3840
+ result?: never;
3841
+ displayName?: never;
3842
+ publicKey?: never;
3843
+ roles?: never;
3242
3844
  };
3243
- }[];
3845
+ } | {
3846
+ header: {
3847
+ version: string;
3848
+ type: string;
3849
+ payloadChecksum: string;
3850
+ signatures: {
3851
+ keyId: string;
3852
+ role: string;
3853
+ notes: string;
3854
+ signature: string;
3855
+ timestamp: number;
3856
+ }[];
3857
+ };
3858
+ payload: {
3859
+ id: string;
3860
+ taskId: string;
3861
+ type: string;
3862
+ title: string;
3863
+ result: string;
3864
+ status?: never;
3865
+ priority?: never;
3866
+ description?: never;
3867
+ tags?: never;
3868
+ displayName?: never;
3869
+ publicKey?: never;
3870
+ roles?: never;
3871
+ };
3872
+ } | {
3873
+ header: {
3874
+ version: string;
3875
+ type: string;
3876
+ payloadChecksum: string;
3877
+ signatures: {
3878
+ keyId: string;
3879
+ role: string;
3880
+ notes: string;
3881
+ signature: string;
3882
+ timestamp: number;
3883
+ }[];
3884
+ };
3885
+ payload: {
3886
+ id: string;
3887
+ type: string;
3888
+ displayName: string;
3889
+ publicKey: string;
3890
+ roles: string[];
3891
+ status?: never;
3892
+ priority?: never;
3893
+ description?: never;
3894
+ tags?: never;
3895
+ taskId?: never;
3896
+ title?: never;
3897
+ result?: never;
3898
+ };
3899
+ })[];
3244
3900
  };
3245
3901
  readonly ExecutionRecord: {
3246
3902
  $schema: string;
@@ -3272,6 +3928,7 @@ declare const Schemas: {
3272
3928
  };
3273
3929
  title: {
3274
3930
  type: string;
3931
+ minLength: number;
3275
3932
  maxLength: number;
3276
3933
  description: string;
3277
3934
  examples: string[];
@@ -3293,6 +3950,7 @@ declare const Schemas: {
3293
3950
  type: string;
3294
3951
  maxLength: number;
3295
3952
  };
3953
+ default: never[];
3296
3954
  description: string;
3297
3955
  };
3298
3956
  };
@@ -3318,7 +3976,9 @@ declare const Schemas: {
3318
3976
  id: {
3319
3977
  type: string;
3320
3978
  pattern: string;
3979
+ maxLength: number;
3321
3980
  description: string;
3981
+ examples: string[];
3322
3982
  };
3323
3983
  entityType: {
3324
3984
  type: string;
@@ -3327,12 +3987,16 @@ declare const Schemas: {
3327
3987
  };
3328
3988
  entityId: {
3329
3989
  type: string;
3990
+ minLength: number;
3991
+ maxLength: number;
3330
3992
  description: string;
3993
+ examples: string[];
3331
3994
  };
3332
3995
  type: {
3333
3996
  type: string;
3334
3997
  enum: string[];
3335
3998
  description: string;
3999
+ examples: string[];
3336
4000
  };
3337
4001
  status: {
3338
4002
  type: string;
@@ -3347,21 +4011,47 @@ declare const Schemas: {
3347
4011
  };
3348
4012
  assignee: {
3349
4013
  type: string;
4014
+ pattern: string;
4015
+ maxLength: number;
3350
4016
  description: string;
4017
+ examples: string[];
3351
4018
  };
3352
4019
  resolvesFeedbackId: {
3353
4020
  type: string;
4021
+ pattern: string;
4022
+ maxLength: number;
3354
4023
  description: string;
4024
+ examples: string[];
3355
4025
  };
3356
4026
  };
3357
- examples: {
4027
+ examples: ({
3358
4028
  id: string;
3359
4029
  entityType: string;
3360
4030
  entityId: string;
3361
4031
  type: string;
3362
4032
  status: string;
3363
4033
  content: string;
3364
- }[];
4034
+ resolvesFeedbackId?: never;
4035
+ assignee?: never;
4036
+ } | {
4037
+ id: string;
4038
+ entityType: string;
4039
+ entityId: string;
4040
+ type: string;
4041
+ status: string;
4042
+ content: string;
4043
+ resolvesFeedbackId: string;
4044
+ assignee?: never;
4045
+ } | {
4046
+ id: string;
4047
+ entityType: string;
4048
+ entityId: string;
4049
+ type: string;
4050
+ status: string;
4051
+ content: string;
4052
+ assignee: string;
4053
+ resolvesFeedbackId?: never;
4054
+ })[];
3365
4055
  };
3366
4056
  readonly TaskRecord: {
3367
4057
  $schema: string;
@@ -3389,8 +4079,11 @@ declare const Schemas: {
3389
4079
  type: string;
3390
4080
  items: {
3391
4081
  type: string;
4082
+ minLength: number;
3392
4083
  pattern: string;
4084
+ maxLength: number;
3393
4085
  };
4086
+ default: never[];
3394
4087
  description: string;
3395
4088
  };
3396
4089
  status: {
@@ -3415,30 +4108,50 @@ declare const Schemas: {
3415
4108
  type: string;
3416
4109
  items: {
3417
4110
  type: string;
4111
+ minLength: number;
3418
4112
  pattern: string;
3419
4113
  };
4114
+ default: never[];
3420
4115
  description: string;
3421
4116
  };
3422
4117
  references: {
3423
4118
  type: string;
3424
4119
  items: {
3425
4120
  type: string;
4121
+ minLength: number;
3426
4122
  maxLength: number;
3427
4123
  };
4124
+ default: never[];
3428
4125
  description: string;
3429
4126
  };
3430
4127
  notes: {
3431
4128
  type: string;
4129
+ minLength: number;
3432
4130
  maxLength: number;
3433
4131
  description: string;
3434
4132
  };
3435
4133
  };
3436
- examples: {
4134
+ examples: ({
3437
4135
  id: string;
4136
+ title: string;
3438
4137
  status: string;
3439
4138
  priority: string;
3440
4139
  description: string;
3441
- }[];
4140
+ cycleIds: string[];
4141
+ tags: string[];
4142
+ references: string[];
4143
+ notes: string;
4144
+ } | {
4145
+ id: string;
4146
+ title: string;
4147
+ status: string;
4148
+ priority: string;
4149
+ description: string;
4150
+ cycleIds: never[];
4151
+ tags: string[];
4152
+ references: never[];
4153
+ notes?: never;
4154
+ })[];
3442
4155
  };
3443
4156
  readonly WorkflowMethodologyRecord: {
3444
4157
  $schema: string;
@@ -3632,6 +4345,9 @@ declare const Schemas: {
3632
4345
  items: {
3633
4346
  type: string;
3634
4347
  required: string[];
4348
+ anyOf: {
4349
+ required: string[];
4350
+ }[];
3635
4351
  additionalProperties: boolean;
3636
4352
  properties: {
3637
4353
  id: {
@@ -3639,9 +4355,13 @@ declare const Schemas: {
3639
4355
  pattern: string;
3640
4356
  description: string;
3641
4357
  };
3642
- gremio: {
4358
+ required_roles: {
3643
4359
  type: string;
3644
- enum: string[];
4360
+ items: {
4361
+ type: string;
4362
+ pattern: string;
4363
+ };
4364
+ minItems: number;
3645
4365
  description: string;
3646
4366
  };
3647
4367
  engine: {
@@ -3759,7 +4479,188 @@ declare const Schemas: {
3759
4479
  };
3760
4480
  };
3761
4481
  };
3762
- };
4482
+ };
4483
+ examples: ({
4484
+ version: string;
4485
+ name: string;
4486
+ description: string;
4487
+ state_transitions: {
4488
+ review: {
4489
+ from: string[];
4490
+ requires: {
4491
+ command: string;
4492
+ signatures?: never;
4493
+ };
4494
+ };
4495
+ ready: {
4496
+ from: string[];
4497
+ requires: {
4498
+ command: string;
4499
+ signatures: {
4500
+ __default__: {
4501
+ role: string;
4502
+ capability_roles: string[];
4503
+ min_approvals: number;
4504
+ };
4505
+ design?: never;
4506
+ quality?: never;
4507
+ };
4508
+ };
4509
+ };
4510
+ active: {
4511
+ from: string[];
4512
+ requires: {
4513
+ event: string;
4514
+ custom_rules?: never;
4515
+ };
4516
+ };
4517
+ done: {
4518
+ from: string[];
4519
+ requires: {
4520
+ command: string;
4521
+ signatures?: never;
4522
+ };
4523
+ };
4524
+ archived?: never;
4525
+ paused?: never;
4526
+ discarded?: never;
4527
+ };
4528
+ view_configs: {
4529
+ "kanban-3col": {
4530
+ columns: {
4531
+ "To Do": string[];
4532
+ "In Progress": string[];
4533
+ Done: string[];
4534
+ };
4535
+ theme: string;
4536
+ layout: string;
4537
+ };
4538
+ "kanban-4col"?: never;
4539
+ "kanban-7col"?: never;
4540
+ };
4541
+ custom_rules?: never;
4542
+ } | {
4543
+ version: string;
4544
+ name: string;
4545
+ description: string;
4546
+ state_transitions: {
4547
+ review: {
4548
+ from: string[];
4549
+ requires: {
4550
+ command: string;
4551
+ signatures: {
4552
+ __default__: {
4553
+ role: string;
4554
+ capability_roles: string[];
4555
+ min_approvals: number;
4556
+ };
4557
+ };
4558
+ };
4559
+ };
4560
+ ready: {
4561
+ from: string[];
4562
+ requires: {
4563
+ command: string;
4564
+ signatures: {
4565
+ __default__: {
4566
+ role: string;
4567
+ capability_roles: string[];
4568
+ min_approvals: number;
4569
+ };
4570
+ design: {
4571
+ role: string;
4572
+ capability_roles: string[];
4573
+ min_approvals: number;
4574
+ };
4575
+ quality: {
4576
+ role: string;
4577
+ capability_roles: string[];
4578
+ min_approvals: number;
4579
+ };
4580
+ };
4581
+ };
4582
+ };
4583
+ active: {
4584
+ from: string[];
4585
+ requires: {
4586
+ event: string;
4587
+ custom_rules: string[];
4588
+ };
4589
+ };
4590
+ done: {
4591
+ from: string[];
4592
+ requires: {
4593
+ command: string;
4594
+ signatures: {
4595
+ __default__: {
4596
+ role: string;
4597
+ capability_roles: string[];
4598
+ min_approvals: number;
4599
+ };
4600
+ };
4601
+ };
4602
+ };
4603
+ archived: {
4604
+ from: string[];
4605
+ requires: {
4606
+ event: string;
4607
+ };
4608
+ };
4609
+ paused: {
4610
+ from: string[];
4611
+ requires: {
4612
+ event: string;
4613
+ };
4614
+ };
4615
+ discarded: {
4616
+ from: string[];
4617
+ requires: {
4618
+ command: string;
4619
+ signatures: {
4620
+ __default__: {
4621
+ role: string;
4622
+ capability_roles: string[];
4623
+ min_approvals: number;
4624
+ };
4625
+ };
4626
+ };
4627
+ };
4628
+ };
4629
+ custom_rules: {
4630
+ task_must_have_valid_assignment_for_executor: {
4631
+ description: string;
4632
+ validation: string;
4633
+ };
4634
+ };
4635
+ view_configs: {
4636
+ "kanban-4col": {
4637
+ columns: {
4638
+ Draft: string[];
4639
+ "In Progress": string[];
4640
+ Review: string[];
4641
+ Done: string[];
4642
+ Cancelled: string[];
4643
+ };
4644
+ theme: string;
4645
+ layout: string;
4646
+ };
4647
+ "kanban-7col": {
4648
+ columns: {
4649
+ Draft: string[];
4650
+ Review: string[];
4651
+ Ready: string[];
4652
+ Active: string[];
4653
+ Done: string[];
4654
+ Archived: string[];
4655
+ Blocked: string[];
4656
+ Cancelled: string[];
4657
+ };
4658
+ theme: string;
4659
+ layout: string;
4660
+ };
4661
+ "kanban-3col"?: never;
4662
+ };
4663
+ })[];
3763
4664
  };
3764
4665
  };
3765
4666
  /**
@@ -3797,6 +4698,8 @@ declare function getSchema(name: SchemaName): {
3797
4698
  };
3798
4699
  publicKey: {
3799
4700
  type: string;
4701
+ minLength: number;
4702
+ maxLength: number;
3800
4703
  description: string;
3801
4704
  };
3802
4705
  roles: {
@@ -3853,27 +4756,29 @@ declare function getSchema(name: SchemaName): {
3853
4756
  enum: string[];
3854
4757
  default: string;
3855
4758
  };
3856
- guild: {
3857
- type: string;
3858
- enum: string[];
3859
- };
3860
4759
  triggers: {
3861
4760
  type: string;
4761
+ default: never[];
4762
+ description: string;
3862
4763
  items: {
3863
4764
  type: string;
3864
4765
  properties: {
3865
4766
  type: {
3866
4767
  type: string;
3867
4768
  enum: string[];
4769
+ description: string;
3868
4770
  };
3869
4771
  };
3870
4772
  required: string[];
4773
+ additionalProperties: boolean;
3871
4774
  };
3872
4775
  };
3873
4776
  knowledge_dependencies: {
3874
4777
  type: string;
4778
+ default: never[];
3875
4779
  items: {
3876
4780
  type: string;
4781
+ description: string;
3877
4782
  };
3878
4783
  };
3879
4784
  prompt_engine_requirements: {
@@ -3893,67 +4798,465 @@ declare function getSchema(name: SchemaName): {
3893
4798
  };
3894
4799
  };
3895
4800
  };
4801
+ metadata: {
4802
+ type: string;
4803
+ description: string;
4804
+ additionalProperties: boolean;
4805
+ };
3896
4806
  engine: {
3897
4807
  type: string;
3898
4808
  oneOf: ({
3899
4809
  required: string[];
4810
+ additionalProperties: boolean;
3900
4811
  properties: {
3901
4812
  type: {
3902
4813
  const: string;
3903
4814
  };
3904
4815
  runtime: {
3905
4816
  type: string;
4817
+ description: string;
3906
4818
  };
3907
4819
  entrypoint: {
3908
4820
  type: string;
4821
+ description: string;
3909
4822
  };
3910
4823
  function: {
3911
4824
  type: string;
4825
+ description: string;
3912
4826
  };
3913
4827
  url?: never;
3914
4828
  method?: never;
3915
4829
  auth?: never;
4830
+ protocol?: never;
4831
+ config?: never;
3916
4832
  };
3917
4833
  } | {
3918
4834
  required: string[];
4835
+ additionalProperties: boolean;
3919
4836
  properties: {
3920
4837
  type: {
3921
4838
  const: string;
3922
4839
  };
3923
4840
  url: {
3924
4841
  type: string;
4842
+ format: string;
4843
+ description: string;
3925
4844
  };
3926
4845
  method: {
3927
4846
  type: string;
3928
4847
  enum: string[];
4848
+ default: string;
3929
4849
  };
3930
4850
  auth: {
3931
4851
  type: string;
4852
+ description: string;
4853
+ additionalProperties: boolean;
4854
+ properties: {
4855
+ type: {
4856
+ type: string;
4857
+ enum: string[];
4858
+ description: string;
4859
+ };
4860
+ secret_key: {
4861
+ type: string;
4862
+ description: string;
4863
+ };
4864
+ token: {
4865
+ type: string;
4866
+ description: string;
4867
+ };
4868
+ };
3932
4869
  };
3933
4870
  runtime?: never;
3934
4871
  entrypoint?: never;
3935
4872
  function?: never;
4873
+ protocol?: never;
4874
+ config?: never;
3936
4875
  };
3937
4876
  } | {
3938
4877
  required: string[];
4878
+ additionalProperties: boolean;
3939
4879
  properties: {
3940
4880
  type: {
3941
4881
  const: string;
3942
4882
  };
3943
4883
  url: {
3944
4884
  type: string;
4885
+ format: string;
4886
+ description: string;
3945
4887
  };
3946
4888
  auth: {
3947
4889
  type: string;
4890
+ description: string;
4891
+ additionalProperties: boolean;
4892
+ properties: {
4893
+ type: {
4894
+ type: string;
4895
+ enum: string[];
4896
+ description: string;
4897
+ };
4898
+ secret_key: {
4899
+ type: string;
4900
+ description: string;
4901
+ };
4902
+ token: {
4903
+ type: string;
4904
+ description: string;
4905
+ };
4906
+ };
4907
+ };
4908
+ runtime?: never;
4909
+ entrypoint?: never;
4910
+ function?: never;
4911
+ method?: never;
4912
+ protocol?: never;
4913
+ config?: never;
4914
+ };
4915
+ } | {
4916
+ required: string[];
4917
+ additionalProperties: boolean;
4918
+ properties: {
4919
+ type: {
4920
+ const: string;
4921
+ };
4922
+ protocol: {
4923
+ type: string;
4924
+ description: string;
4925
+ };
4926
+ config: {
4927
+ type: string;
4928
+ description: string;
3948
4929
  };
3949
4930
  runtime?: never;
3950
4931
  entrypoint?: never;
3951
4932
  function?: never;
4933
+ url?: never;
3952
4934
  method?: never;
4935
+ auth?: never;
3953
4936
  };
3954
4937
  })[];
3955
4938
  };
3956
4939
  };
4940
+ examples: ({
4941
+ id: string;
4942
+ status: string;
4943
+ engine: {
4944
+ type: string;
4945
+ runtime: string;
4946
+ entrypoint: string;
4947
+ function: string;
4948
+ url?: never;
4949
+ method?: never;
4950
+ auth?: never;
4951
+ protocol?: never;
4952
+ config?: never;
4953
+ };
4954
+ metadata: {
4955
+ purpose: string;
4956
+ maintainer: string;
4957
+ framework?: never;
4958
+ version?: never;
4959
+ model?: never;
4960
+ deployment?: never;
4961
+ cost_per_invocation?: never;
4962
+ currency?: never;
4963
+ max_tokens?: never;
4964
+ ide?: never;
4965
+ tool?: never;
4966
+ accepts_tools?: never;
4967
+ provider?: never;
4968
+ supported_languages?: never;
4969
+ max_chars_per_request?: never;
4970
+ experimental?: never;
4971
+ };
4972
+ triggers: {
4973
+ type: string;
4974
+ }[];
4975
+ knowledge_dependencies: string[];
4976
+ prompt_engine_requirements?: never;
4977
+ } | {
4978
+ id: string;
4979
+ status: string;
4980
+ engine: {
4981
+ type: string;
4982
+ url: string;
4983
+ method: string;
4984
+ auth: {
4985
+ type: string;
4986
+ secret_key?: never;
4987
+ };
4988
+ runtime?: never;
4989
+ entrypoint?: never;
4990
+ function?: never;
4991
+ protocol?: never;
4992
+ config?: never;
4993
+ };
4994
+ metadata: {
4995
+ framework: string;
4996
+ version: string;
4997
+ model: string;
4998
+ deployment: {
4999
+ provider: string;
5000
+ service: string;
5001
+ region: string;
5002
+ runtime?: never;
5003
+ image?: never;
5004
+ port?: never;
5005
+ };
5006
+ cost_per_invocation: number;
5007
+ currency: string;
5008
+ purpose?: never;
5009
+ maintainer?: never;
5010
+ max_tokens?: never;
5011
+ ide?: never;
5012
+ tool?: never;
5013
+ accepts_tools?: never;
5014
+ provider?: never;
5015
+ supported_languages?: never;
5016
+ max_chars_per_request?: never;
5017
+ experimental?: never;
5018
+ };
5019
+ triggers: {
5020
+ type: string;
5021
+ event: string;
5022
+ }[];
5023
+ knowledge_dependencies: string[];
5024
+ prompt_engine_requirements?: never;
5025
+ } | {
5026
+ id: string;
5027
+ status: string;
5028
+ engine: {
5029
+ type: string;
5030
+ url: string;
5031
+ method: string;
5032
+ auth: {
5033
+ type: string;
5034
+ secret_key?: never;
5035
+ };
5036
+ runtime?: never;
5037
+ entrypoint?: never;
5038
+ function?: never;
5039
+ protocol?: never;
5040
+ config?: never;
5041
+ };
5042
+ metadata: {
5043
+ framework: string;
5044
+ version: string;
5045
+ model: string;
5046
+ deployment: {
5047
+ runtime: string;
5048
+ image: string;
5049
+ port: number;
5050
+ provider?: never;
5051
+ service?: never;
5052
+ region?: never;
5053
+ };
5054
+ max_tokens: number;
5055
+ purpose?: never;
5056
+ maintainer?: never;
5057
+ cost_per_invocation?: never;
5058
+ currency?: never;
5059
+ ide?: never;
5060
+ tool?: never;
5061
+ accepts_tools?: never;
5062
+ provider?: never;
5063
+ supported_languages?: never;
5064
+ max_chars_per_request?: never;
5065
+ experimental?: never;
5066
+ };
5067
+ triggers: {
5068
+ type: string;
5069
+ event: string;
5070
+ }[];
5071
+ knowledge_dependencies?: never;
5072
+ prompt_engine_requirements?: never;
5073
+ } | {
5074
+ id: string;
5075
+ status: string;
5076
+ engine: {
5077
+ type: string;
5078
+ url: string;
5079
+ auth: {
5080
+ type: string;
5081
+ secret_key?: never;
5082
+ };
5083
+ runtime?: never;
5084
+ entrypoint?: never;
5085
+ function?: never;
5086
+ method?: never;
5087
+ protocol?: never;
5088
+ config?: never;
5089
+ };
5090
+ metadata: {
5091
+ ide: string;
5092
+ tool: string;
5093
+ accepts_tools: string[];
5094
+ purpose?: never;
5095
+ maintainer?: never;
5096
+ framework?: never;
5097
+ version?: never;
5098
+ model?: never;
5099
+ deployment?: never;
5100
+ cost_per_invocation?: never;
5101
+ currency?: never;
5102
+ max_tokens?: never;
5103
+ provider?: never;
5104
+ supported_languages?: never;
5105
+ max_chars_per_request?: never;
5106
+ experimental?: never;
5107
+ };
5108
+ knowledge_dependencies: string[];
5109
+ triggers: {
5110
+ type: string;
5111
+ event: string;
5112
+ }[];
5113
+ prompt_engine_requirements?: never;
5114
+ } | {
5115
+ id: string;
5116
+ status: string;
5117
+ engine: {
5118
+ type: string;
5119
+ url: string;
5120
+ method: string;
5121
+ auth: {
5122
+ type: string;
5123
+ secret_key: string;
5124
+ };
5125
+ runtime?: never;
5126
+ entrypoint?: never;
5127
+ function?: never;
5128
+ protocol?: never;
5129
+ config?: never;
5130
+ };
5131
+ metadata: {
5132
+ provider: string;
5133
+ supported_languages: string[];
5134
+ max_chars_per_request: number;
5135
+ purpose?: never;
5136
+ maintainer?: never;
5137
+ framework?: never;
5138
+ version?: never;
5139
+ model?: never;
5140
+ deployment?: never;
5141
+ cost_per_invocation?: never;
5142
+ currency?: never;
5143
+ max_tokens?: never;
5144
+ ide?: never;
5145
+ tool?: never;
5146
+ accepts_tools?: never;
5147
+ experimental?: never;
5148
+ };
5149
+ triggers: {
5150
+ type: string;
5151
+ }[];
5152
+ knowledge_dependencies?: never;
5153
+ prompt_engine_requirements?: never;
5154
+ } | {
5155
+ id: string;
5156
+ status: string;
5157
+ engine: {
5158
+ type: string;
5159
+ protocol: string;
5160
+ config: {
5161
+ endpoint: string;
5162
+ version: string;
5163
+ capabilities: string[];
5164
+ };
5165
+ runtime?: never;
5166
+ entrypoint?: never;
5167
+ function?: never;
5168
+ url?: never;
5169
+ method?: never;
5170
+ auth?: never;
5171
+ };
5172
+ metadata: {
5173
+ purpose: string;
5174
+ experimental: boolean;
5175
+ maintainer?: never;
5176
+ framework?: never;
5177
+ version?: never;
5178
+ model?: never;
5179
+ deployment?: never;
5180
+ cost_per_invocation?: never;
5181
+ currency?: never;
5182
+ max_tokens?: never;
5183
+ ide?: never;
5184
+ tool?: never;
5185
+ accepts_tools?: never;
5186
+ provider?: never;
5187
+ supported_languages?: never;
5188
+ max_chars_per_request?: never;
5189
+ };
5190
+ triggers: {
5191
+ type: string;
5192
+ cron: string;
5193
+ }[];
5194
+ knowledge_dependencies?: never;
5195
+ prompt_engine_requirements?: never;
5196
+ } | {
5197
+ id: string;
5198
+ engine: {
5199
+ type: string;
5200
+ runtime?: never;
5201
+ entrypoint?: never;
5202
+ function?: never;
5203
+ url?: never;
5204
+ method?: never;
5205
+ auth?: never;
5206
+ protocol?: never;
5207
+ config?: never;
5208
+ };
5209
+ status?: never;
5210
+ metadata?: never;
5211
+ triggers?: never;
5212
+ knowledge_dependencies?: never;
5213
+ prompt_engine_requirements?: never;
5214
+ } | {
5215
+ id: string;
5216
+ status: string;
5217
+ engine: {
5218
+ type: string;
5219
+ url: string;
5220
+ runtime?: never;
5221
+ entrypoint?: never;
5222
+ function?: never;
5223
+ method?: never;
5224
+ auth?: never;
5225
+ protocol?: never;
5226
+ config?: never;
5227
+ };
5228
+ knowledge_dependencies: string[];
5229
+ triggers: {
5230
+ type: string;
5231
+ }[];
5232
+ metadata?: never;
5233
+ prompt_engine_requirements?: never;
5234
+ } | {
5235
+ id: string;
5236
+ status: string;
5237
+ engine: {
5238
+ type: string;
5239
+ runtime: string;
5240
+ entrypoint: string;
5241
+ function: string;
5242
+ url?: never;
5243
+ method?: never;
5244
+ auth?: never;
5245
+ protocol?: never;
5246
+ config?: never;
5247
+ };
5248
+ prompt_engine_requirements: {
5249
+ roles: string[];
5250
+ skills: string[];
5251
+ };
5252
+ knowledge_dependencies: string[];
5253
+ triggers: {
5254
+ type: string;
5255
+ event: string;
5256
+ filter: string;
5257
+ }[];
5258
+ metadata?: never;
5259
+ })[];
3957
5260
  } | {
3958
5261
  $schema: string;
3959
5262
  $id: string;
@@ -3966,27 +5269,16 @@ declare function getSchema(name: SchemaName): {
3966
5269
  id: {
3967
5270
  type: string;
3968
5271
  pattern: string;
5272
+ maxLength: number;
3969
5273
  description: string;
3970
- };
3971
- entityType: {
3972
- type: string;
3973
- enum: string[];
3974
- description: string;
3975
- };
3976
- entityId: {
3977
- type: string;
3978
- description: string;
3979
- };
3980
- changeType: {
3981
- type: string;
3982
- enum: string[];
3983
- description: string;
5274
+ examples: string[];
3984
5275
  };
3985
5276
  title: {
3986
5277
  type: string;
3987
5278
  minLength: number;
3988
5279
  maxLength: number;
3989
5280
  description: string;
5281
+ examples: string[];
3990
5282
  };
3991
5283
  description: {
3992
5284
  type: string;
@@ -3994,145 +5286,104 @@ declare function getSchema(name: SchemaName): {
3994
5286
  maxLength: number;
3995
5287
  description: string;
3996
5288
  };
3997
- timestamp: {
3998
- type: string;
3999
- minimum: number;
4000
- description: string;
4001
- };
4002
- trigger: {
4003
- type: string;
4004
- enum: string[];
4005
- description: string;
4006
- };
4007
- triggeredBy: {
5289
+ relatedTasks: {
4008
5290
  type: string;
5291
+ items: {
5292
+ type: string;
5293
+ pattern: string;
5294
+ };
5295
+ minItems: number;
4009
5296
  description: string;
4010
5297
  };
4011
- reason: {
5298
+ completedAt: {
4012
5299
  type: string;
4013
- minLength: number;
4014
- maxLength: number;
5300
+ minimum: number;
4015
5301
  description: string;
4016
5302
  };
4017
- riskLevel: {
5303
+ relatedCycles: {
4018
5304
  type: string;
4019
- enum: string[];
5305
+ items: {
5306
+ type: string;
5307
+ pattern: string;
5308
+ };
5309
+ default: never[];
4020
5310
  description: string;
4021
5311
  };
4022
- affectedSystems: {
5312
+ relatedExecutions: {
4023
5313
  type: string;
4024
5314
  items: {
4025
5315
  type: string;
5316
+ pattern: string;
4026
5317
  };
5318
+ default: never[];
4027
5319
  description: string;
4028
5320
  };
4029
- usersAffected: {
5321
+ version: {
4030
5322
  type: string;
4031
- minimum: number;
5323
+ minLength: number;
5324
+ maxLength: number;
4032
5325
  description: string;
5326
+ examples: string[];
4033
5327
  };
4034
- downtime: {
5328
+ tags: {
4035
5329
  type: string;
4036
- minimum: number;
5330
+ items: {
5331
+ type: string;
5332
+ pattern: string;
5333
+ };
5334
+ default: never[];
4037
5335
  description: string;
4038
5336
  };
4039
- files: {
5337
+ commits: {
4040
5338
  type: string;
4041
5339
  items: {
4042
5340
  type: string;
5341
+ maxLength: number;
4043
5342
  };
5343
+ default: never[];
4044
5344
  description: string;
4045
5345
  };
4046
- commits: {
5346
+ files: {
4047
5347
  type: string;
4048
5348
  items: {
4049
5349
  type: string;
5350
+ maxLength: number;
4050
5351
  };
5352
+ default: never[];
4051
5353
  description: string;
4052
5354
  };
4053
- rollbackInstructions: {
5355
+ notes: {
4054
5356
  type: string;
4055
- minLength: number;
4056
5357
  maxLength: number;
4057
5358
  description: string;
4058
5359
  };
4059
- references: {
4060
- type: string;
4061
- additionalProperties: boolean;
4062
- properties: {
4063
- tasks: {
4064
- type: string;
4065
- items: {
4066
- type: string;
4067
- };
4068
- description: string;
4069
- };
4070
- cycles: {
4071
- type: string;
4072
- items: {
4073
- type: string;
4074
- };
4075
- description: string;
4076
- };
4077
- executions: {
4078
- type: string;
4079
- items: {
4080
- type: string;
4081
- };
4082
- description: string;
4083
- };
4084
- changelogs: {
4085
- type: string;
4086
- items: {
4087
- type: string;
4088
- };
4089
- description: string;
4090
- };
4091
- };
4092
- description: string;
4093
- };
4094
5360
  };
4095
5361
  examples: ({
4096
5362
  id: string;
4097
- entityType: string;
4098
- entityId: string;
4099
- changeType: string;
4100
5363
  title: string;
4101
5364
  description: string;
4102
- timestamp: number;
4103
- trigger: string;
4104
- triggeredBy: string;
4105
- reason: string;
4106
- riskLevel: string;
4107
- files: string[];
5365
+ relatedTasks: string[];
5366
+ completedAt: number;
5367
+ relatedCycles: string[];
5368
+ relatedExecutions: string[];
5369
+ version: string;
5370
+ tags: string[];
4108
5371
  commits: string[];
4109
- references: {
4110
- tasks: string[];
4111
- executions: string[];
4112
- };
4113
- affectedSystems?: never;
4114
- usersAffected?: never;
4115
- downtime?: never;
4116
- rollbackInstructions?: never;
5372
+ files: string[];
5373
+ notes: string;
4117
5374
  } | {
4118
5375
  id: string;
4119
- entityType: string;
4120
- entityId: string;
4121
- changeType: string;
4122
5376
  title: string;
4123
5377
  description: string;
4124
- timestamp: number;
4125
- trigger: string;
4126
- triggeredBy: string;
4127
- reason: string;
4128
- riskLevel: string;
4129
- affectedSystems: string[];
4130
- usersAffected: number;
4131
- downtime: number;
4132
- rollbackInstructions: string;
5378
+ relatedTasks: string[];
5379
+ completedAt: number;
5380
+ version: string;
5381
+ tags: string[];
4133
5382
  commits: string[];
5383
+ notes: string;
5384
+ relatedCycles?: never;
5385
+ relatedExecutions?: never;
4134
5386
  files?: never;
4135
- references?: never;
4136
5387
  })[];
4137
5388
  } | {
4138
5389
  $schema: string;
@@ -4146,13 +5397,16 @@ declare function getSchema(name: SchemaName): {
4146
5397
  id: {
4147
5398
  type: string;
4148
5399
  pattern: string;
5400
+ maxLength: number;
4149
5401
  description: string;
5402
+ examples: string[];
4150
5403
  };
4151
5404
  title: {
4152
5405
  type: string;
4153
5406
  minLength: number;
4154
5407
  maxLength: number;
4155
5408
  description: string;
5409
+ examples: string[];
4156
5410
  };
4157
5411
  status: {
4158
5412
  type: string;
@@ -4164,39 +5418,58 @@ declare function getSchema(name: SchemaName): {
4164
5418
  items: {
4165
5419
  type: string;
4166
5420
  pattern: string;
5421
+ maxLength: number;
4167
5422
  };
5423
+ default: never[];
5424
+ description: string;
5425
+ examples: string[][];
4168
5426
  };
4169
5427
  childCycleIds: {
4170
5428
  type: string;
4171
5429
  items: {
4172
5430
  type: string;
4173
5431
  pattern: string;
5432
+ maxLength: number;
4174
5433
  };
5434
+ default: never[];
4175
5435
  description: string;
5436
+ examples: string[][];
4176
5437
  };
4177
5438
  tags: {
4178
5439
  type: string;
4179
5440
  items: {
4180
5441
  type: string;
4181
5442
  pattern: string;
5443
+ maxLength: number;
4182
5444
  };
4183
5445
  default: never[];
4184
5446
  description: string;
5447
+ examples: string[][];
4185
5448
  };
4186
5449
  notes: {
4187
5450
  type: string;
5451
+ minLength: number;
4188
5452
  maxLength: number;
4189
5453
  description: string;
4190
5454
  };
4191
5455
  };
4192
- examples: {
5456
+ examples: ({
4193
5457
  id: string;
4194
5458
  title: string;
4195
5459
  status: string;
4196
5460
  taskIds: string[];
4197
5461
  tags: string[];
4198
5462
  notes: string;
4199
- }[];
5463
+ childCycleIds?: never;
5464
+ } | {
5465
+ id: string;
5466
+ title: string;
5467
+ status: string;
5468
+ childCycleIds: string[];
5469
+ tags: string[];
5470
+ notes: string;
5471
+ taskIds?: never;
5472
+ })[];
4200
5473
  } | {
4201
5474
  $schema: string;
4202
5475
  $id: string;
@@ -4239,35 +5512,37 @@ declare function getSchema(name: SchemaName): {
4239
5512
  properties: {
4240
5513
  keyId: {
4241
5514
  type: string;
5515
+ pattern: string;
4242
5516
  description: string;
4243
5517
  };
4244
5518
  role: {
4245
5519
  type: string;
5520
+ pattern: string;
5521
+ minLength: number;
5522
+ maxLength: number;
4246
5523
  description: string;
4247
5524
  };
4248
- signature: {
5525
+ notes: {
4249
5526
  type: string;
5527
+ minLength: number;
5528
+ maxLength: number;
4250
5529
  description: string;
4251
5530
  };
4252
- timestamp: {
5531
+ signature: {
4253
5532
  type: string;
5533
+ pattern: string;
4254
5534
  description: string;
4255
5535
  };
4256
- timestamp_iso: {
5536
+ timestamp: {
4257
5537
  type: string;
4258
5538
  description: string;
4259
5539
  };
4260
5540
  };
4261
5541
  required: string[];
5542
+ additionalProperties: boolean;
4262
5543
  };
4263
5544
  description: string;
4264
5545
  };
4265
- audit: {
4266
- type: string;
4267
- minLength: number;
4268
- maxLength: number;
4269
- description: string;
4270
- };
4271
5546
  };
4272
5547
  required: string[];
4273
5548
  additionalProperties: boolean;
@@ -4325,7 +5600,7 @@ declare function getSchema(name: SchemaName): {
4325
5600
  };
4326
5601
  else: boolean;
4327
5602
  })[];
4328
- examples: {
5603
+ examples: ({
4329
5604
  header: {
4330
5605
  version: string;
4331
5606
  type: string;
@@ -4333,9 +5608,9 @@ declare function getSchema(name: SchemaName): {
4333
5608
  signatures: {
4334
5609
  keyId: string;
4335
5610
  role: string;
5611
+ notes: string;
4336
5612
  signature: string;
4337
5613
  timestamp: number;
4338
- timestamp_iso: string;
4339
5614
  }[];
4340
5615
  };
4341
5616
  payload: {
@@ -4344,8 +5619,69 @@ declare function getSchema(name: SchemaName): {
4344
5619
  priority: string;
4345
5620
  description: string;
4346
5621
  tags: string[];
5622
+ taskId?: never;
5623
+ type?: never;
5624
+ title?: never;
5625
+ result?: never;
5626
+ displayName?: never;
5627
+ publicKey?: never;
5628
+ roles?: never;
4347
5629
  };
4348
- }[];
5630
+ } | {
5631
+ header: {
5632
+ version: string;
5633
+ type: string;
5634
+ payloadChecksum: string;
5635
+ signatures: {
5636
+ keyId: string;
5637
+ role: string;
5638
+ notes: string;
5639
+ signature: string;
5640
+ timestamp: number;
5641
+ }[];
5642
+ };
5643
+ payload: {
5644
+ id: string;
5645
+ taskId: string;
5646
+ type: string;
5647
+ title: string;
5648
+ result: string;
5649
+ status?: never;
5650
+ priority?: never;
5651
+ description?: never;
5652
+ tags?: never;
5653
+ displayName?: never;
5654
+ publicKey?: never;
5655
+ roles?: never;
5656
+ };
5657
+ } | {
5658
+ header: {
5659
+ version: string;
5660
+ type: string;
5661
+ payloadChecksum: string;
5662
+ signatures: {
5663
+ keyId: string;
5664
+ role: string;
5665
+ notes: string;
5666
+ signature: string;
5667
+ timestamp: number;
5668
+ }[];
5669
+ };
5670
+ payload: {
5671
+ id: string;
5672
+ type: string;
5673
+ displayName: string;
5674
+ publicKey: string;
5675
+ roles: string[];
5676
+ status?: never;
5677
+ priority?: never;
5678
+ description?: never;
5679
+ tags?: never;
5680
+ taskId?: never;
5681
+ title?: never;
5682
+ result?: never;
5683
+ };
5684
+ })[];
4349
5685
  } | {
4350
5686
  $schema: string;
4351
5687
  $id: string;
@@ -4376,6 +5712,7 @@ declare function getSchema(name: SchemaName): {
4376
5712
  };
4377
5713
  title: {
4378
5714
  type: string;
5715
+ minLength: number;
4379
5716
  maxLength: number;
4380
5717
  description: string;
4381
5718
  examples: string[];
@@ -4397,6 +5734,7 @@ declare function getSchema(name: SchemaName): {
4397
5734
  type: string;
4398
5735
  maxLength: number;
4399
5736
  };
5737
+ default: never[];
4400
5738
  description: string;
4401
5739
  };
4402
5740
  };
@@ -4421,7 +5759,9 @@ declare function getSchema(name: SchemaName): {
4421
5759
  id: {
4422
5760
  type: string;
4423
5761
  pattern: string;
5762
+ maxLength: number;
4424
5763
  description: string;
5764
+ examples: string[];
4425
5765
  };
4426
5766
  entityType: {
4427
5767
  type: string;
@@ -4430,12 +5770,16 @@ declare function getSchema(name: SchemaName): {
4430
5770
  };
4431
5771
  entityId: {
4432
5772
  type: string;
5773
+ minLength: number;
5774
+ maxLength: number;
4433
5775
  description: string;
5776
+ examples: string[];
4434
5777
  };
4435
5778
  type: {
4436
5779
  type: string;
4437
5780
  enum: string[];
4438
5781
  description: string;
5782
+ examples: string[];
4439
5783
  };
4440
5784
  status: {
4441
5785
  type: string;
@@ -4450,21 +5794,47 @@ declare function getSchema(name: SchemaName): {
4450
5794
  };
4451
5795
  assignee: {
4452
5796
  type: string;
5797
+ pattern: string;
5798
+ maxLength: number;
4453
5799
  description: string;
5800
+ examples: string[];
4454
5801
  };
4455
5802
  resolvesFeedbackId: {
4456
5803
  type: string;
5804
+ pattern: string;
5805
+ maxLength: number;
4457
5806
  description: string;
5807
+ examples: string[];
4458
5808
  };
4459
5809
  };
4460
- examples: {
5810
+ examples: ({
4461
5811
  id: string;
4462
5812
  entityType: string;
4463
5813
  entityId: string;
4464
5814
  type: string;
4465
5815
  status: string;
4466
5816
  content: string;
4467
- }[];
5817
+ resolvesFeedbackId?: never;
5818
+ assignee?: never;
5819
+ } | {
5820
+ id: string;
5821
+ entityType: string;
5822
+ entityId: string;
5823
+ type: string;
5824
+ status: string;
5825
+ content: string;
5826
+ resolvesFeedbackId: string;
5827
+ assignee?: never;
5828
+ } | {
5829
+ id: string;
5830
+ entityType: string;
5831
+ entityId: string;
5832
+ type: string;
5833
+ status: string;
5834
+ content: string;
5835
+ assignee: string;
5836
+ resolvesFeedbackId?: never;
5837
+ })[];
4468
5838
  } | {
4469
5839
  $schema: string;
4470
5840
  $id: string;
@@ -4491,8 +5861,11 @@ declare function getSchema(name: SchemaName): {
4491
5861
  type: string;
4492
5862
  items: {
4493
5863
  type: string;
5864
+ minLength: number;
4494
5865
  pattern: string;
5866
+ maxLength: number;
4495
5867
  };
5868
+ default: never[];
4496
5869
  description: string;
4497
5870
  };
4498
5871
  status: {
@@ -4517,30 +5890,50 @@ declare function getSchema(name: SchemaName): {
4517
5890
  type: string;
4518
5891
  items: {
4519
5892
  type: string;
5893
+ minLength: number;
4520
5894
  pattern: string;
4521
5895
  };
5896
+ default: never[];
4522
5897
  description: string;
4523
5898
  };
4524
5899
  references: {
4525
5900
  type: string;
4526
5901
  items: {
4527
5902
  type: string;
5903
+ minLength: number;
4528
5904
  maxLength: number;
4529
5905
  };
5906
+ default: never[];
4530
5907
  description: string;
4531
5908
  };
4532
5909
  notes: {
4533
5910
  type: string;
5911
+ minLength: number;
4534
5912
  maxLength: number;
4535
5913
  description: string;
4536
5914
  };
4537
5915
  };
4538
- examples: {
5916
+ examples: ({
4539
5917
  id: string;
5918
+ title: string;
4540
5919
  status: string;
4541
5920
  priority: string;
4542
5921
  description: string;
4543
- }[];
5922
+ cycleIds: string[];
5923
+ tags: string[];
5924
+ references: string[];
5925
+ notes: string;
5926
+ } | {
5927
+ id: string;
5928
+ title: string;
5929
+ status: string;
5930
+ priority: string;
5931
+ description: string;
5932
+ cycleIds: never[];
5933
+ tags: string[];
5934
+ references: never[];
5935
+ notes?: never;
5936
+ })[];
4544
5937
  } | {
4545
5938
  $schema: string;
4546
5939
  $id: string;
@@ -4733,6 +6126,9 @@ declare function getSchema(name: SchemaName): {
4733
6126
  items: {
4734
6127
  type: string;
4735
6128
  required: string[];
6129
+ anyOf: {
6130
+ required: string[];
6131
+ }[];
4736
6132
  additionalProperties: boolean;
4737
6133
  properties: {
4738
6134
  id: {
@@ -4740,9 +6136,13 @@ declare function getSchema(name: SchemaName): {
4740
6136
  pattern: string;
4741
6137
  description: string;
4742
6138
  };
4743
- gremio: {
6139
+ required_roles: {
4744
6140
  type: string;
4745
- enum: string[];
6141
+ items: {
6142
+ type: string;
6143
+ pattern: string;
6144
+ };
6145
+ minItems: number;
4746
6146
  description: string;
4747
6147
  };
4748
6148
  engine: {
@@ -4861,6 +6261,187 @@ declare function getSchema(name: SchemaName): {
4861
6261
  };
4862
6262
  };
4863
6263
  };
6264
+ examples: ({
6265
+ version: string;
6266
+ name: string;
6267
+ description: string;
6268
+ state_transitions: {
6269
+ review: {
6270
+ from: string[];
6271
+ requires: {
6272
+ command: string;
6273
+ signatures?: never;
6274
+ };
6275
+ };
6276
+ ready: {
6277
+ from: string[];
6278
+ requires: {
6279
+ command: string;
6280
+ signatures: {
6281
+ __default__: {
6282
+ role: string;
6283
+ capability_roles: string[];
6284
+ min_approvals: number;
6285
+ };
6286
+ design?: never;
6287
+ quality?: never;
6288
+ };
6289
+ };
6290
+ };
6291
+ active: {
6292
+ from: string[];
6293
+ requires: {
6294
+ event: string;
6295
+ custom_rules?: never;
6296
+ };
6297
+ };
6298
+ done: {
6299
+ from: string[];
6300
+ requires: {
6301
+ command: string;
6302
+ signatures?: never;
6303
+ };
6304
+ };
6305
+ archived?: never;
6306
+ paused?: never;
6307
+ discarded?: never;
6308
+ };
6309
+ view_configs: {
6310
+ "kanban-3col": {
6311
+ columns: {
6312
+ "To Do": string[];
6313
+ "In Progress": string[];
6314
+ Done: string[];
6315
+ };
6316
+ theme: string;
6317
+ layout: string;
6318
+ };
6319
+ "kanban-4col"?: never;
6320
+ "kanban-7col"?: never;
6321
+ };
6322
+ custom_rules?: never;
6323
+ } | {
6324
+ version: string;
6325
+ name: string;
6326
+ description: string;
6327
+ state_transitions: {
6328
+ review: {
6329
+ from: string[];
6330
+ requires: {
6331
+ command: string;
6332
+ signatures: {
6333
+ __default__: {
6334
+ role: string;
6335
+ capability_roles: string[];
6336
+ min_approvals: number;
6337
+ };
6338
+ };
6339
+ };
6340
+ };
6341
+ ready: {
6342
+ from: string[];
6343
+ requires: {
6344
+ command: string;
6345
+ signatures: {
6346
+ __default__: {
6347
+ role: string;
6348
+ capability_roles: string[];
6349
+ min_approvals: number;
6350
+ };
6351
+ design: {
6352
+ role: string;
6353
+ capability_roles: string[];
6354
+ min_approvals: number;
6355
+ };
6356
+ quality: {
6357
+ role: string;
6358
+ capability_roles: string[];
6359
+ min_approvals: number;
6360
+ };
6361
+ };
6362
+ };
6363
+ };
6364
+ active: {
6365
+ from: string[];
6366
+ requires: {
6367
+ event: string;
6368
+ custom_rules: string[];
6369
+ };
6370
+ };
6371
+ done: {
6372
+ from: string[];
6373
+ requires: {
6374
+ command: string;
6375
+ signatures: {
6376
+ __default__: {
6377
+ role: string;
6378
+ capability_roles: string[];
6379
+ min_approvals: number;
6380
+ };
6381
+ };
6382
+ };
6383
+ };
6384
+ archived: {
6385
+ from: string[];
6386
+ requires: {
6387
+ event: string;
6388
+ };
6389
+ };
6390
+ paused: {
6391
+ from: string[];
6392
+ requires: {
6393
+ event: string;
6394
+ };
6395
+ };
6396
+ discarded: {
6397
+ from: string[];
6398
+ requires: {
6399
+ command: string;
6400
+ signatures: {
6401
+ __default__: {
6402
+ role: string;
6403
+ capability_roles: string[];
6404
+ min_approvals: number;
6405
+ };
6406
+ };
6407
+ };
6408
+ };
6409
+ };
6410
+ custom_rules: {
6411
+ task_must_have_valid_assignment_for_executor: {
6412
+ description: string;
6413
+ validation: string;
6414
+ };
6415
+ };
6416
+ view_configs: {
6417
+ "kanban-4col": {
6418
+ columns: {
6419
+ Draft: string[];
6420
+ "In Progress": string[];
6421
+ Review: string[];
6422
+ Done: string[];
6423
+ Cancelled: string[];
6424
+ };
6425
+ theme: string;
6426
+ layout: string;
6427
+ };
6428
+ "kanban-7col": {
6429
+ columns: {
6430
+ Draft: string[];
6431
+ Review: string[];
6432
+ Ready: string[];
6433
+ Active: string[];
6434
+ Done: string[];
6435
+ Archived: string[];
6436
+ Blocked: string[];
6437
+ Cancelled: string[];
6438
+ };
6439
+ theme: string;
6440
+ layout: string;
6441
+ };
6442
+ "kanban-3col"?: never;
6443
+ };
6444
+ })[];
4864
6445
  };
4865
6446
  /**
4866
6447
  * Get all schema names
@@ -4924,12 +6505,12 @@ declare class SchemaValidationError extends Error {
4924
6505
  * Error for detailed AJV validation failures with multiple field errors.
4925
6506
  */
4926
6507
  declare class DetailedValidationError extends GitGovError {
4927
- readonly ajvErrors: Array<{
6508
+ readonly errors: Array<{
4928
6509
  field: string;
4929
6510
  message: string;
4930
6511
  value: unknown;
4931
6512
  }>;
4932
- constructor(recordType: string, ajvErrors: Array<{
6513
+ constructor(recordType: string, errors: Array<{
4933
6514
  field: string;
4934
6515
  message: string;
4935
6516
  value: unknown;