@contractspec/bundle.workspace 4.2.0 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/contracts/operations/init.operation.d.ts +1 -1
  2. package/dist/index.js +1562 -18352
  3. package/dist/node/index.js +1562 -18353
  4. package/dist/ports/git.d.ts +4 -0
  5. package/dist/services/build.d.ts +36 -1
  6. package/dist/services/connect/assessment.d.ts +31 -0
  7. package/dist/services/connect/audit-record.d.ts +11 -0
  8. package/dist/services/connect/command-policy.d.ts +6 -0
  9. package/dist/services/connect/config.d.ts +8 -0
  10. package/dist/services/connect/context-plan.test.d.ts +1 -0
  11. package/dist/services/connect/context.d.ts +3 -0
  12. package/dist/services/connect/contract-refs.d.ts +10 -0
  13. package/dist/services/connect/drift-outputdir.test.d.ts +1 -0
  14. package/dist/services/connect/eval.d.ts +13 -0
  15. package/dist/services/connect/impact-analysis.d.ts +25 -0
  16. package/dist/services/connect/index.d.ts +16 -0
  17. package/dist/services/connect/init.d.ts +3 -0
  18. package/dist/services/connect/init.test.d.ts +1 -0
  19. package/dist/services/connect/plan-policy.test.d.ts +1 -0
  20. package/dist/services/connect/plan.d.ts +6 -0
  21. package/dist/services/connect/replay-eval.test.d.ts +1 -0
  22. package/dist/services/connect/replay.d.ts +6 -0
  23. package/dist/services/connect/review.d.ts +3 -0
  24. package/dist/services/connect/runtime-link.d.ts +7 -0
  25. package/dist/services/connect/runtime-link.test.d.ts +1 -0
  26. package/dist/services/connect/runtime-types.d.ts +48 -0
  27. package/dist/services/connect/shared.d.ts +14 -0
  28. package/dist/services/connect/storage.d.ts +50 -0
  29. package/dist/services/connect/types.d.ts +250 -0
  30. package/dist/services/connect/verdict-mapping.test.d.ts +1 -0
  31. package/dist/services/connect/verify-boundaries.test.d.ts +1 -0
  32. package/dist/services/connect/verify-helpers.d.ts +30 -0
  33. package/dist/services/connect/verify-impact.test.d.ts +1 -0
  34. package/dist/services/connect/verify.d.ts +15 -0
  35. package/dist/services/contractsrc-schema-ref.d.ts +4 -0
  36. package/dist/services/deps.d.ts +2 -0
  37. package/dist/services/discover.d.ts +15 -0
  38. package/dist/services/discover.test.d.ts +1 -0
  39. package/dist/services/drift.d.ts +5 -1
  40. package/dist/services/generate-artifacts.d.ts +10 -1
  41. package/dist/services/index.d.ts +4 -0
  42. package/dist/services/integrity.d.ts +2 -0
  43. package/dist/services/list.d.ts +4 -0
  44. package/dist/services/module-loader.d.ts +25 -0
  45. package/dist/services/module-loader.test.d.ts +1 -0
  46. package/dist/services/package-scaffold.d.ts +22 -0
  47. package/dist/services/setup/config-generators.d.ts +2 -4
  48. package/dist/services/setup/gitignore.d.ts +10 -0
  49. package/dist/services/setup/gitignore.test.d.ts +1 -0
  50. package/dist/services/setup/index.d.ts +2 -0
  51. package/dist/services/setup/presets.d.ts +16 -0
  52. package/dist/services/setup/targets/agents-md.d.ts +0 -2
  53. package/dist/services/setup/targets/agents-md.test.d.ts +1 -0
  54. package/dist/services/setup/targets/cli-config.test.d.ts +1 -0
  55. package/dist/services/setup/types.d.ts +36 -2
  56. package/dist/services/update.test.d.ts +1 -0
  57. package/dist/services/upgrade/guided-upgrade.d.ts +1 -1
  58. package/dist/services/upgrade/index.d.ts +1 -1
  59. package/dist/services/validate/index.d.ts +1 -0
  60. package/dist/services/validate/module-loader-usage.test.d.ts +1 -0
  61. package/dist/services/validate/package-scaffold-validator.d.ts +8 -0
  62. package/dist/services/validate/package-scaffold-validator.test.d.ts +1 -0
  63. package/dist/services/validate/spec-validator.d.ts +6 -1
  64. package/dist/services/versioning/index.d.ts +1 -1
  65. package/dist/services/vibe/definitions.test.d.ts +1 -0
  66. package/dist/templates/data-view-renderer.template.d.ts +6 -0
  67. package/dist/templates/feature.template.d.ts +7 -6
  68. package/dist/templates/form.template.d.ts +16 -0
  69. package/dist/templates/form.template.test.d.ts +1 -0
  70. package/dist/templates/index.d.ts +3 -0
  71. package/dist/templates/workflow-devkit.template.d.ts +11 -0
  72. package/dist/utils/index.d.ts +0 -1
  73. package/package.json +15 -14
  74. package/dist/utils/module-loader.d.ts +0 -1
@@ -5,6 +5,10 @@
5
5
  * Git adapter interface.
6
6
  */
7
7
  export interface GitAdapter {
8
+ /**
9
+ * Get the current branch name when available.
10
+ */
11
+ currentBranch(): Promise<string | undefined>;
8
12
  /**
9
13
  * Get file contents at a specific git ref (branch, tag, commit).
10
14
  */
@@ -11,7 +11,7 @@ import type { LoggerAdapter } from '../ports/logger';
11
11
  /**
12
12
  * Build target types.
13
13
  */
14
- export type BuildTarget = 'handler' | 'component' | 'test';
14
+ export type BuildTarget = 'handler' | 'component' | 'test' | 'form' | 'workflow-runner' | 'data-view-renderer' | 'package-scaffold';
15
15
  /**
16
16
  * Options for building from a spec.
17
17
  */
@@ -32,6 +32,33 @@ export interface BuildSpecOptions {
32
32
  * Skip writing files (dry run).
33
33
  */
34
34
  dryRun?: boolean;
35
+ /**
36
+ * Include target-specific test artifacts in the default build plan.
37
+ */
38
+ includeTests?: boolean;
39
+ /**
40
+ * Optional runtime generation strategy supplied by higher-level callers.
41
+ */
42
+ runtimeGeneration?: RuntimeGenerationStrategy;
43
+ }
44
+ export type RuntimeArtifactKind = 'handler' | 'component' | 'form';
45
+ export type RuntimeTestKind = 'handler' | 'component';
46
+ export interface RuntimeArtifactGenerationInput {
47
+ kind: RuntimeArtifactKind;
48
+ specCode: string;
49
+ outputPath: string;
50
+ fallbackCode: string;
51
+ }
52
+ export interface RuntimeTestGenerationInput {
53
+ kind: RuntimeTestKind;
54
+ specCode: string;
55
+ outputPath: string;
56
+ existingCode: string;
57
+ fallbackCode: string;
58
+ }
59
+ export interface RuntimeGenerationStrategy {
60
+ generateArtifact?: (input: RuntimeArtifactGenerationInput) => Promise<string | null | undefined>;
61
+ generateTest?: (input: RuntimeTestGenerationInput) => Promise<string | null | undefined>;
35
62
  }
36
63
  /**
37
64
  * Result of a single build target.
@@ -42,6 +69,7 @@ export interface BuildTargetResult {
42
69
  success: boolean;
43
70
  skipped?: boolean;
44
71
  error?: string;
72
+ generatedCode?: string;
45
73
  }
46
74
  /**
47
75
  * Result of building from a spec.
@@ -49,6 +77,7 @@ export interface BuildTargetResult {
49
77
  export interface BuildSpecResult {
50
78
  specPath: string;
51
79
  specInfo: SpecScanResult;
80
+ targetId: string;
52
81
  results: BuildTargetResult[];
53
82
  }
54
83
  /**
@@ -59,3 +88,9 @@ export declare function buildSpec(specPath: string, adapters: {
59
88
  logger: LoggerAdapter;
60
89
  workspace?: typeof import('@contractspec/module.workspace');
61
90
  }, config: ResolvedContractsrcConfig, options?: BuildSpecOptions): Promise<BuildSpecResult>;
91
+ /**
92
+ * Detect default targets based on spec type.
93
+ */
94
+ export declare function resolveDefaultBuildTargets(targetId: string, options: {
95
+ includeTests: boolean;
96
+ }): BuildTarget[];
@@ -0,0 +1,31 @@
1
+ import { type ConnectCommandState } from './command-policy';
2
+ import type { ConnectImpactAnalysis } from './impact-analysis';
3
+ import type { ConnectResolvedWorkspace } from './shared';
4
+ import type { ConnectVerdict } from './types';
5
+ export interface ConnectPolicyAssessment {
6
+ verdict: ConnectVerdict;
7
+ verificationStatus: 'approved' | 'revise' | 'review' | 'denied';
8
+ controlPlaneVerdict: 'autonomous' | 'assist' | 'blocked';
9
+ requiresApproval: boolean;
10
+ requiredApprovals: Array<{
11
+ capability: string;
12
+ reason: string;
13
+ }>;
14
+ commandState: ConnectCommandState;
15
+ commandMatch?: string;
16
+ immutablePath?: string;
17
+ protectedPath?: string;
18
+ generatedPath?: string;
19
+ reviewReason?: string;
20
+ }
21
+ export declare function assessConnectPolicy(workspace: ConnectResolvedWorkspace, input: {
22
+ commands?: string[];
23
+ impactAnalysis: ConnectImpactAnalysis;
24
+ smokeFailed?: boolean;
25
+ touchedPaths: string[];
26
+ }): ConnectPolicyAssessment;
27
+ export declare function connectVerdictToPolicy(verdict: ConnectVerdict): {
28
+ verificationStatus: 'approved' | 'revise' | 'review' | 'denied';
29
+ controlPlaneVerdict: 'autonomous' | 'assist' | 'blocked';
30
+ requiresApproval: boolean;
31
+ };
@@ -0,0 +1,11 @@
1
+ import type { ConnectDecisionEnvelope } from './runtime-types';
2
+ import type { ConnectResolvedWorkspace } from './shared';
3
+ import type { ConnectContextPack, ConnectReviewPacket, ConnectVerifyInput } from './types';
4
+ export declare function buildConnectAuditRecord(input: {
5
+ contextPack: ConnectContextPack;
6
+ createdAt: string;
7
+ envelope: ConnectDecisionEnvelope;
8
+ reviewPacket?: ConnectReviewPacket;
9
+ verifyInput: ConnectVerifyInput;
10
+ workspace: ConnectResolvedWorkspace;
11
+ }): Record<string, unknown>;
@@ -0,0 +1,6 @@
1
+ import type { ConnectResolvedWorkspace } from './shared';
2
+ export type ConnectCommandState = 'none' | 'allow' | 'review' | 'deny' | 'destructive' | 'unknown';
3
+ export declare function classifyCommands(workspace: ConnectResolvedWorkspace, commands: string[]): {
4
+ state: ConnectCommandState;
5
+ commandMatch?: string;
6
+ };
@@ -0,0 +1,8 @@
1
+ import type { ConnectVerdict } from '@contractspec/lib.contracts-spec/workspace-config';
2
+ import type { ConnectResolvedWorkspace } from './shared';
3
+ export declare function assertConnectEnabled(workspace: ConnectResolvedWorkspace): void;
4
+ export declare function matchConfiguredPath(workspace: ConnectResolvedWorkspace, path: string, patterns: string[] | undefined): boolean;
5
+ export declare function configuredThreshold(workspace: ConnectResolvedWorkspace, key: 'protectedPathWrite' | 'unknownImpact' | 'contractDrift' | 'breakingChange' | 'destructiveCommand', fallback: ConnectVerdict): ConnectVerdict;
6
+ export declare function isAllowedCommand(workspace: ConnectResolvedWorkspace, command: string): boolean;
7
+ export declare function isReviewCommand(workspace: ConnectResolvedWorkspace, command: string): boolean;
8
+ export declare function isDeniedCommand(workspace: ConnectResolvedWorkspace, command: string): boolean;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { WorkspaceAdapters } from '../../ports/logger';
2
+ import type { ConnectContextPack, ConnectTaskInput } from './types';
3
+ export declare function buildConnectContextPack(adapters: Pick<WorkspaceAdapters, 'fs' | 'git'>, input: ConnectTaskInput): Promise<ConnectContextPack>;
@@ -0,0 +1,10 @@
1
+ import type { ConnectContractRef } from './types';
2
+ export declare const CONTROL_PLANE_INTENT_SUBMIT_REF: ConnectContractRef;
3
+ export declare const CONTROL_PLANE_PLAN_COMPILE_REF: ConnectContractRef;
4
+ export declare const CONTROL_PLANE_PLAN_VERIFY_REF: ConnectContractRef;
5
+ export declare const CONTROL_PLANE_TRACE_GET_REF: ConnectContractRef;
6
+ export declare const CONTROL_PLANE_POLICY_EXPLAIN_REF: ConnectContractRef;
7
+ export declare const CONTROL_PLANE_EXECUTION_APPROVE_REF: ConnectContractRef;
8
+ export declare const ACP_FS_ACCESS_REF: ConnectContractRef;
9
+ export declare const ACP_TERMINAL_EXEC_REF: ConnectContractRef;
10
+ export declare const AGENT_APPROVALS_REF: ConnectContractRef;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { WorkspaceAdapters } from '../../ports/logger';
2
+ import type { ConnectEvalInput, ConnectEvaluationRuntime, ConnectWorkspaceInput } from './types';
3
+ export declare function evaluateConnectDecision(adapters: Pick<WorkspaceAdapters, 'fs'>, input: ConnectEvalInput, runtime: ConnectEvaluationRuntime): Promise<{
4
+ historyDir: string;
5
+ evaluation: unknown;
6
+ context: Record<string, unknown>;
7
+ }>;
8
+ export declare function normalizeEvalInput(input: ConnectWorkspaceInput & {
9
+ decisionId: string;
10
+ scenarioKey?: string;
11
+ suiteKey?: string;
12
+ version?: string;
13
+ }): ConnectEvalInput;
@@ -0,0 +1,25 @@
1
+ import type { WorkspaceAdapters } from '../../ports/logger';
2
+ import { detectImpact } from '../impact';
3
+ import { type ConnectResolvedWorkspace } from './shared';
4
+ import type { ConnectContractRef, ConnectSurface } from './types';
5
+ export interface ConnectPathImpact {
6
+ path: string;
7
+ contracts: ConnectContractRef[];
8
+ policies: ConnectContractRef[];
9
+ surfaces: ConnectSurface[];
10
+ confidence: 'exact' | 'high' | 'medium' | 'none';
11
+ reasons: string[];
12
+ }
13
+ export interface ConnectImpactAnalysis {
14
+ impactedContracts: ConnectContractRef[];
15
+ pathImpacts: ConnectPathImpact[];
16
+ breakingChange: boolean;
17
+ driftFiles: string[];
18
+ impactResult?: Awaited<ReturnType<typeof detectImpact>>;
19
+ unknownPaths: string[];
20
+ }
21
+ export declare function analyzeConnectImpact(adapters: Pick<WorkspaceAdapters, 'fs' | 'git'> & Partial<Pick<WorkspaceAdapters, 'logger'>>, input: {
22
+ workspace: ConnectResolvedWorkspace;
23
+ touchedPaths: string[];
24
+ baseline?: string;
25
+ }): Promise<ConnectImpactAnalysis>;
@@ -0,0 +1,16 @@
1
+ export * from './assessment';
2
+ export * from './config';
3
+ export * from './context';
4
+ export * from './contract-refs';
5
+ export * from './eval';
6
+ export * from './impact-analysis';
7
+ export * from './init';
8
+ export * from './plan';
9
+ export * from './replay';
10
+ export * from './review';
11
+ export * from './runtime-link';
12
+ export * from './runtime-types';
13
+ export * from './shared';
14
+ export * from './storage';
15
+ export * from './types';
16
+ export * from './verify';
@@ -0,0 +1,3 @@
1
+ import type { FsAdapter } from '../../ports/fs';
2
+ import type { ConnectInitInput, ConnectInitResult } from './types';
3
+ export declare function initConnectWorkspace(fs: FsAdapter, input?: ConnectInitInput): Promise<ConnectInitResult>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { WorkspaceAdapters } from '../../ports/logger';
2
+ import type { ConnectContextPack, ConnectPlanInput, ConnectPlanPacket } from './types';
3
+ export declare function compileConnectPlanPacket(adapters: Pick<WorkspaceAdapters, 'fs' | 'git'>, input: ConnectPlanInput): Promise<{
4
+ contextPack: ConnectContextPack;
5
+ planPacket: ConnectPlanPacket;
6
+ }>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { WorkspaceAdapters } from '../../ports/logger';
2
+ import type { ConnectControlPlaneRuntime } from './runtime-types';
3
+ import type { ConnectReplayResult, ConnectWorkspaceInput } from './types';
4
+ export declare function replayConnectDecision(adapters: Pick<WorkspaceAdapters, 'fs'>, input: ConnectWorkspaceInput & {
5
+ decisionId: string;
6
+ }, controlPlane?: ConnectControlPlaneRuntime): Promise<ConnectReplayResult>;
@@ -0,0 +1,3 @@
1
+ import type { WorkspaceAdapters } from '../../ports/logger';
2
+ import type { ConnectReviewListItem, ConnectWorkspaceInput } from './types';
3
+ export declare function listConnectReviewPackets(adapters: Pick<WorkspaceAdapters, 'fs'>, input?: ConnectWorkspaceInput): Promise<ConnectReviewListItem[]>;
@@ -0,0 +1,7 @@
1
+ import { type ChannelRuntimeStore, type ChannelTraceService } from '@contractspec/integration.runtime/channel';
2
+ import type { ConnectControlPlaneRuntime } from './runtime-types';
3
+ export declare function createConnectControlPlaneRuntime(input: {
4
+ store: ChannelRuntimeStore;
5
+ traceService: ChannelTraceService;
6
+ now?: () => Date;
7
+ }): ConnectControlPlaneRuntime;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,48 @@
1
+ import type { ConnectResolvedWorkspace } from './shared';
2
+ import type { ConnectPatchVerdict, ConnectPlanPacket, ConnectRuntimeLink, ConnectVerdict, ConnectVerifyInput } from './types';
3
+ export interface ConnectTraceLookup {
4
+ decisionId?: string;
5
+ traceId?: string;
6
+ }
7
+ export interface ConnectReviewBridgeState {
8
+ enabled: boolean;
9
+ mode?: 'off' | 'review-bridge';
10
+ endpoint?: string;
11
+ queue?: string;
12
+ status: 'disabled' | 'skipped' | 'synced' | 'failed';
13
+ lastAttemptAt?: string;
14
+ syncedAt?: string;
15
+ reviewId?: string;
16
+ laneRunId?: string;
17
+ runtimeDecisionId?: string;
18
+ traceId?: string;
19
+ error?: string;
20
+ }
21
+ export interface ConnectDecisionEnvelope {
22
+ connectDecisionId: string;
23
+ taskId: string;
24
+ verdict: ConnectVerdict;
25
+ createdAt: string;
26
+ artifacts: {
27
+ contextPack: string;
28
+ planPacket: string;
29
+ patchVerdict: string;
30
+ reviewPacket?: string;
31
+ evaluationResult?: string;
32
+ replayBundle?: string;
33
+ };
34
+ runtimeLink?: ConnectRuntimeLink;
35
+ reviewBridge?: ConnectReviewBridgeState;
36
+ }
37
+ export interface ConnectControlPlaneRuntime {
38
+ linkDecision(input: {
39
+ connectDecisionId: string;
40
+ input: ConnectVerifyInput;
41
+ workspace: ConnectResolvedWorkspace;
42
+ planPacket: ConnectPlanPacket;
43
+ patchVerdict: ConnectPatchVerdict;
44
+ createdAt: string;
45
+ }): Promise<ConnectRuntimeLink | null>;
46
+ getExecutionTrace(input: ConnectTraceLookup): Promise<unknown | null>;
47
+ replayExecutionTrace(input: ConnectTraceLookup): Promise<unknown | null>;
48
+ }
@@ -0,0 +1,14 @@
1
+ import { type ResolvedContractsrcConfig } from '@contractspec/lib.contracts-spec/workspace-config';
2
+ import type { ConnectActorRef, ConnectSurface, ConnectWorkspaceInput } from './types';
3
+ export interface ConnectResolvedWorkspace {
4
+ cwd: string;
5
+ workspaceRoot: string;
6
+ packageRoot: string;
7
+ config: ResolvedContractsrcConfig;
8
+ repoId: string;
9
+ branch: string;
10
+ }
11
+ export declare function resolveWorkspace(input?: ConnectWorkspaceInput): ConnectResolvedWorkspace;
12
+ export declare function withBranch<T extends ConnectResolvedWorkspace>(workspace: T, branch: string | undefined): T;
13
+ export declare function defaultActor(taskId: string, actor?: ConnectActorRef): ConnectActorRef;
14
+ export declare function inferSurfaces(paths: string[]): ConnectSurface[];
@@ -0,0 +1,50 @@
1
+ import type { FsAdapter } from '../../ports/fs';
2
+ import type { ConnectDecisionEnvelope } from './runtime-types';
3
+ import type { ConnectResolvedWorkspace } from './shared';
4
+ import type { ConnectContextPack, ConnectPatchVerdict, ConnectPlanPacket, ConnectReviewListItem, ConnectReviewPacket } from './types';
5
+ export interface ConnectStoragePaths {
6
+ root: string;
7
+ contextPack: string;
8
+ planPacket: string;
9
+ patchVerdict: string;
10
+ auditFile: string;
11
+ reviewPacketsDir: string;
12
+ decisionsDir: string;
13
+ }
14
+ export interface ConnectStoredDecision {
15
+ historyDir: string;
16
+ contextPack?: ConnectContextPack;
17
+ planPacket?: ConnectPlanPacket;
18
+ patchVerdict?: ConnectPatchVerdict;
19
+ reviewPacket?: ConnectReviewPacket;
20
+ envelope?: ConnectDecisionEnvelope;
21
+ }
22
+ export declare function resolveStoragePaths(workspace: ConnectResolvedWorkspace): ConnectStoragePaths;
23
+ export declare function ensureStorage(fs: FsAdapter, storage: ConnectStoragePaths): Promise<void>;
24
+ export declare function persistLatestArtifacts(fs: FsAdapter, storage: ConnectStoragePaths, artifacts: {
25
+ contextPack?: ConnectContextPack;
26
+ planPacket?: ConnectPlanPacket;
27
+ patchVerdict?: ConnectPatchVerdict;
28
+ }): Promise<void>;
29
+ export declare function persistDecisionArtifacts(fs: FsAdapter, storage: ConnectStoragePaths, decisionId: string, artifacts: {
30
+ contextPack?: ConnectContextPack;
31
+ planPacket?: ConnectPlanPacket;
32
+ patchVerdict?: ConnectPatchVerdict;
33
+ reviewPacket?: ConnectReviewPacket;
34
+ evaluationResult?: unknown;
35
+ replayBundle?: unknown;
36
+ }): Promise<string>;
37
+ export declare function writeDecisionEnvelope(fs: FsAdapter, storage: ConnectStoragePaths, decisionId: string, envelope: ConnectDecisionEnvelope): Promise<string>;
38
+ export declare function appendAuditRecord(fs: FsAdapter, storage: ConnectStoragePaths, record: Record<string, unknown>): Promise<void>;
39
+ export declare function writeReviewPacket(fs: FsAdapter, storage: ConnectStoragePaths, packet: ConnectReviewPacket): Promise<string>;
40
+ export declare function loadStoredDecision(fs: FsAdapter, storage: ConnectStoragePaths, decisionId: string): Promise<ConnectStoredDecision>;
41
+ export declare function listStoredReviewPackets(fs: FsAdapter, storage: ConnectStoragePaths): Promise<ConnectReviewListItem[]>;
42
+ export declare function artifactRef(fs: FsAdapter, workspace: ConnectResolvedWorkspace, path: string): string;
43
+ export declare function decisionArtifactRefs(fs: FsAdapter, workspace: ConnectResolvedWorkspace, storage: ConnectStoragePaths, decisionId: string, artifacts: {
44
+ contextPack?: boolean;
45
+ planPacket?: boolean;
46
+ patchVerdict?: boolean;
47
+ reviewPacket?: boolean;
48
+ evaluationResult?: boolean;
49
+ replayBundle?: boolean;
50
+ }): ConnectDecisionEnvelope['artifacts'];
@@ -0,0 +1,250 @@
1
+ import type { ConnectVerdict, ResolvedContractsrcConfig } from '@contractspec/lib.contracts-spec/workspace-config';
2
+ import type { SetupFileResult, SetupGitignoreBehavior, SetupPromptCallbacks } from '../setup/types';
3
+ export type { ConnectVerdict };
4
+ export type ConnectActorType = 'human' | 'agent' | 'service' | 'tool';
5
+ export type ConnectApprovalStatus = 'not_required' | 'pending' | 'approved' | 'rejected' | 'expired';
6
+ export type ConnectSurface = 'agent' | 'audit' | 'cli' | 'contract' | 'harness' | 'knowledge' | 'mcp' | 'runtime';
7
+ export type ConnectContractKind = 'command' | 'query' | 'event' | 'policy' | 'capability';
8
+ export interface ConnectActorRef {
9
+ id: string;
10
+ type: ConnectActorType;
11
+ sessionId?: string;
12
+ traceId?: string;
13
+ }
14
+ export interface ConnectContractRef {
15
+ key: string;
16
+ version: string;
17
+ kind?: ConnectContractKind;
18
+ }
19
+ export interface ConnectRuntimeLink {
20
+ decisionId: string;
21
+ traceId?: string;
22
+ planId?: string;
23
+ approvalStatus?: ConnectApprovalStatus;
24
+ workspaceId?: string;
25
+ providerKey?: string;
26
+ receiptId?: string;
27
+ threadId?: string;
28
+ }
29
+ export interface ConnectWorkspaceInput {
30
+ cwd?: string;
31
+ workspaceRoot?: string;
32
+ packageRoot?: string;
33
+ config?: ResolvedContractsrcConfig;
34
+ }
35
+ export interface ConnectInitInput extends ConnectWorkspaceInput {
36
+ scope?: 'workspace' | 'package';
37
+ interactive?: boolean;
38
+ gitignoreBehavior?: SetupGitignoreBehavior;
39
+ prompts?: Pick<SetupPromptCallbacks, 'confirm'>;
40
+ }
41
+ export interface ConnectInitResult {
42
+ configPath: string;
43
+ targetRoot: string;
44
+ action: 'created' | 'merged';
45
+ gitignore: SetupFileResult;
46
+ }
47
+ export interface ConnectTaskInput extends ConnectWorkspaceInput {
48
+ taskId: string;
49
+ actor?: ConnectActorRef;
50
+ baseline?: string;
51
+ paths?: string[];
52
+ }
53
+ export interface ConnectContextPack {
54
+ id: string;
55
+ taskId: string;
56
+ repoId: string;
57
+ branch: string;
58
+ actor: ConnectActorRef;
59
+ knowledge: Array<{
60
+ spaceKey: string;
61
+ category: 'canonical' | 'operational' | 'external' | 'ephemeral';
62
+ trustLevel: 'high' | 'medium' | 'low';
63
+ source: string;
64
+ digest?: string;
65
+ }>;
66
+ impactedContracts: ConnectContractRef[];
67
+ affectedSurfaces: ConnectSurface[];
68
+ policyBindings: Array<{
69
+ key: string;
70
+ version: string;
71
+ source: 'contract' | 'canon-pack' | 'workspace-config';
72
+ authority: 'canonical' | 'operational';
73
+ }>;
74
+ configRefs: Array<{
75
+ kind: 'contractsrc' | 'artifact' | 'canon-pack';
76
+ ref: string;
77
+ }>;
78
+ acceptanceChecks: string[];
79
+ }
80
+ export interface ConnectPlanStep {
81
+ id: string;
82
+ summary: string;
83
+ paths?: string[];
84
+ commands?: string[];
85
+ contractRefs?: string[];
86
+ }
87
+ export interface ConnectPlanPacket {
88
+ id: string;
89
+ taskId: string;
90
+ repoId: string;
91
+ branch: string;
92
+ actor: ConnectActorRef;
93
+ objective: string;
94
+ steps: ConnectPlanStep[];
95
+ impactedContracts: ConnectContractRef[];
96
+ affectedSurfaces: ConnectSurface[];
97
+ requiredChecks: string[];
98
+ requiredApprovals: Array<{
99
+ capability: string;
100
+ reason: string;
101
+ }>;
102
+ riskScore: number;
103
+ verificationStatus: 'approved' | 'revise' | 'review' | 'denied';
104
+ controlPlane: {
105
+ intentSubmit: ConnectContractRef;
106
+ planCompile: ConnectContractRef;
107
+ planVerify: ConnectContractRef;
108
+ decisionId?: string;
109
+ traceId?: string;
110
+ };
111
+ acpActions?: Array<'acp.fs.access' | 'acp.terminal.exec' | 'acp.tool.calls'>;
112
+ }
113
+ export interface ConnectImpactedFile {
114
+ file: string;
115
+ contracts: ConnectContractRef[];
116
+ surfaces: ConnectSurface[];
117
+ policies: ConnectContractRef[];
118
+ }
119
+ export interface ConnectPatchVerdict {
120
+ decisionId: string;
121
+ summary?: string;
122
+ action: {
123
+ actionType: 'write_file' | 'edit_file' | 'run_command';
124
+ tool: 'acp.fs.access' | 'acp.terminal.exec' | 'acp.tool.calls';
125
+ target?: string;
126
+ cwd?: string;
127
+ };
128
+ impacted: ConnectImpactedFile[];
129
+ checks: Array<{
130
+ id: string;
131
+ status: 'pass' | 'fail' | 'warn';
132
+ detail: string;
133
+ }>;
134
+ verdict: ConnectVerdict;
135
+ controlPlane: {
136
+ verdict: 'autonomous' | 'assist' | 'blocked';
137
+ requiresApproval: boolean;
138
+ policyRef?: ConnectContractRef;
139
+ decisionId?: string;
140
+ approvalStatus?: ConnectApprovalStatus;
141
+ traceId?: string;
142
+ };
143
+ approvalOperationRefs?: string[];
144
+ remediation?: string[];
145
+ reviewPacketRef?: string;
146
+ retryBudget?: number;
147
+ replay: {
148
+ traceQuery: ConnectContractRef;
149
+ policyExplain?: ConnectContractRef;
150
+ };
151
+ }
152
+ export interface ConnectReviewPacket {
153
+ id: string;
154
+ sourceDecisionId: string;
155
+ objective: string;
156
+ reason: string;
157
+ summary: {
158
+ paths: string[];
159
+ impactedContracts: ConnectContractRef[];
160
+ affectedSurfaces: ConnectSurface[];
161
+ requiredChecks: string[];
162
+ };
163
+ evidence: Array<{
164
+ type: 'context-pack' | 'plan-packet' | 'patch-verdict' | 'control-plane-trace';
165
+ ref: string;
166
+ }>;
167
+ requiredApprovals: Array<{
168
+ capability: string;
169
+ reason: string;
170
+ }>;
171
+ controlPlane: {
172
+ traceQuery: ConnectContractRef;
173
+ policyExplain: ConnectContractRef;
174
+ decisionId?: string;
175
+ approvalStatus?: ConnectApprovalStatus;
176
+ traceId?: string;
177
+ };
178
+ studio?: {
179
+ enabled?: boolean;
180
+ mode?: 'off' | 'review-bridge';
181
+ queue?: string;
182
+ };
183
+ }
184
+ export interface ConnectPlanInput extends ConnectTaskInput {
185
+ candidate: {
186
+ objective: string;
187
+ steps?: Array<string | Omit<ConnectPlanStep, 'id'>>;
188
+ touchedPaths?: string[];
189
+ commands?: string[];
190
+ };
191
+ }
192
+ export interface ConnectVerifyFsAccessInput extends ConnectTaskInput {
193
+ tool: 'acp.fs.access';
194
+ operation: string;
195
+ path: string;
196
+ content?: string;
197
+ options?: Record<string, unknown>;
198
+ }
199
+ export interface ConnectVerifyTerminalExecInput extends ConnectTaskInput {
200
+ tool: 'acp.terminal.exec';
201
+ command: string;
202
+ cwd?: string;
203
+ touchedPaths?: string[];
204
+ }
205
+ export type ConnectVerifyInput = ConnectVerifyFsAccessInput | ConnectVerifyTerminalExecInput;
206
+ export interface ConnectCommandResult {
207
+ command: string;
208
+ cwd?: string;
209
+ exitCode: number;
210
+ stdout: string;
211
+ stderr: string;
212
+ }
213
+ export interface ConnectVerifyRuntime {
214
+ runCommand?: (command: string, options?: {
215
+ cwd?: string;
216
+ }) => Promise<ConnectCommandResult>;
217
+ }
218
+ export interface ConnectReplayResult {
219
+ decisionId: string;
220
+ historyDir: string;
221
+ contextPack?: ConnectContextPack;
222
+ planPacket?: ConnectPlanPacket;
223
+ patchVerdict?: ConnectPatchVerdict;
224
+ reviewPacket?: ConnectReviewPacket;
225
+ trace?: unknown;
226
+ replay?: unknown;
227
+ source: 'local' | 'local+control-plane';
228
+ }
229
+ export interface ConnectEvaluationRuntime {
230
+ runScenarioEvaluation(input: {
231
+ scenarioKey: string;
232
+ version?: string;
233
+ context?: Record<string, unknown>;
234
+ }): Promise<unknown>;
235
+ runSuiteEvaluation(input: {
236
+ suiteKey: string;
237
+ version?: string;
238
+ context?: Record<string, unknown>;
239
+ }): Promise<unknown>;
240
+ }
241
+ export interface ConnectEvalInput extends ConnectWorkspaceInput {
242
+ decisionId: string;
243
+ scenarioKey?: string;
244
+ suiteKey?: string;
245
+ version?: string;
246
+ }
247
+ export interface ConnectReviewListItem {
248
+ filePath: string;
249
+ packet: ConnectReviewPacket;
250
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};