@contractspec/bundle.workspace 4.1.4 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1424 -17599
- package/dist/node/index.js +1424 -17600
- package/dist/ports/git.d.ts +4 -0
- package/dist/services/connect/assessment.d.ts +31 -0
- package/dist/services/connect/audit-record.d.ts +11 -0
- package/dist/services/connect/command-policy.d.ts +6 -0
- package/dist/services/connect/config.d.ts +8 -0
- package/dist/services/connect/context-plan.test.d.ts +1 -0
- package/dist/services/connect/context.d.ts +3 -0
- package/dist/services/connect/contract-refs.d.ts +10 -0
- package/dist/services/connect/drift-outputdir.test.d.ts +1 -0
- package/dist/services/connect/eval.d.ts +13 -0
- package/dist/services/connect/impact-analysis.d.ts +25 -0
- package/dist/services/connect/index.d.ts +16 -0
- package/dist/services/connect/init.d.ts +7 -0
- package/dist/services/connect/init.test.d.ts +1 -0
- package/dist/services/connect/plan-policy.test.d.ts +1 -0
- package/dist/services/connect/plan.d.ts +6 -0
- package/dist/services/connect/replay-eval.test.d.ts +1 -0
- package/dist/services/connect/replay.d.ts +6 -0
- package/dist/services/connect/review.d.ts +3 -0
- package/dist/services/connect/runtime-link.d.ts +7 -0
- package/dist/services/connect/runtime-link.test.d.ts +1 -0
- package/dist/services/connect/runtime-types.d.ts +48 -0
- package/dist/services/connect/shared.d.ts +14 -0
- package/dist/services/connect/storage.d.ts +50 -0
- package/dist/services/connect/types.d.ts +240 -0
- package/dist/services/connect/verdict-mapping.test.d.ts +1 -0
- package/dist/services/connect/verify-boundaries.test.d.ts +1 -0
- package/dist/services/connect/verify-helpers.d.ts +30 -0
- package/dist/services/connect/verify-impact.test.d.ts +1 -0
- package/dist/services/connect/verify.d.ts +15 -0
- package/dist/services/drift.d.ts +5 -1
- package/dist/services/generate-artifacts.d.ts +6 -1
- package/dist/services/index.d.ts +1 -0
- package/dist/services/list.d.ts +4 -0
- package/dist/services/setup/config-generators.d.ts +1 -3
- package/dist/services/setup/targets/agents-md.d.ts +0 -2
- package/dist/services/setup/targets/agents-md.test.d.ts +1 -0
- package/dist/services/upgrade/guided-upgrade.d.ts +10 -0
- package/dist/services/upgrade/guided-upgrade.test.d.ts +1 -0
- package/dist/services/upgrade/index.d.ts +1 -0
- package/dist/services/upgrade/types.d.ts +24 -0
- package/dist/services/upgrade/upgrade-service.d.ts +2 -0
- package/dist/services/versioning/index.d.ts +3 -0
- package/dist/services/versioning/release-files.d.ts +19 -0
- package/dist/services/versioning/release-formatters.d.ts +8 -0
- package/dist/services/versioning/release-plan.d.ts +7 -0
- package/dist/services/versioning/release-service.d.ts +13 -0
- package/dist/services/versioning/release-service.test.d.ts +1 -0
- package/dist/services/versioning/release-service.types.d.ts +55 -0
- package/package.json +19 -18
package/dist/ports/git.d.ts
CHANGED
|
@@ -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,7 @@
|
|
|
1
|
+
import type { FsAdapter } from '../../ports/fs';
|
|
2
|
+
import type { ConnectInitInput } from './types';
|
|
3
|
+
export declare function initConnectWorkspace(fs: FsAdapter, input?: ConnectInitInput): Promise<{
|
|
4
|
+
configPath: string;
|
|
5
|
+
targetRoot: string;
|
|
6
|
+
action: 'created' | 'merged';
|
|
7
|
+
}>;
|
|
@@ -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,240 @@
|
|
|
1
|
+
import type { ConnectVerdict, ResolvedContractsrcConfig } from '@contractspec/lib.contracts-spec/workspace-config';
|
|
2
|
+
export type { ConnectVerdict };
|
|
3
|
+
export type ConnectActorType = 'human' | 'agent' | 'service' | 'tool';
|
|
4
|
+
export type ConnectApprovalStatus = 'not_required' | 'pending' | 'approved' | 'rejected' | 'expired';
|
|
5
|
+
export type ConnectSurface = 'agent' | 'audit' | 'cli' | 'contract' | 'harness' | 'knowledge' | 'mcp' | 'runtime';
|
|
6
|
+
export type ConnectContractKind = 'command' | 'query' | 'event' | 'policy' | 'capability';
|
|
7
|
+
export interface ConnectActorRef {
|
|
8
|
+
id: string;
|
|
9
|
+
type: ConnectActorType;
|
|
10
|
+
sessionId?: string;
|
|
11
|
+
traceId?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ConnectContractRef {
|
|
14
|
+
key: string;
|
|
15
|
+
version: string;
|
|
16
|
+
kind?: ConnectContractKind;
|
|
17
|
+
}
|
|
18
|
+
export interface ConnectRuntimeLink {
|
|
19
|
+
decisionId: string;
|
|
20
|
+
traceId?: string;
|
|
21
|
+
planId?: string;
|
|
22
|
+
approvalStatus?: ConnectApprovalStatus;
|
|
23
|
+
workspaceId?: string;
|
|
24
|
+
providerKey?: string;
|
|
25
|
+
receiptId?: string;
|
|
26
|
+
threadId?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface ConnectWorkspaceInput {
|
|
29
|
+
cwd?: string;
|
|
30
|
+
workspaceRoot?: string;
|
|
31
|
+
packageRoot?: string;
|
|
32
|
+
config?: ResolvedContractsrcConfig;
|
|
33
|
+
}
|
|
34
|
+
export interface ConnectInitInput extends ConnectWorkspaceInput {
|
|
35
|
+
scope?: 'workspace' | 'package';
|
|
36
|
+
}
|
|
37
|
+
export interface ConnectTaskInput extends ConnectWorkspaceInput {
|
|
38
|
+
taskId: string;
|
|
39
|
+
actor?: ConnectActorRef;
|
|
40
|
+
baseline?: string;
|
|
41
|
+
paths?: string[];
|
|
42
|
+
}
|
|
43
|
+
export interface ConnectContextPack {
|
|
44
|
+
id: string;
|
|
45
|
+
taskId: string;
|
|
46
|
+
repoId: string;
|
|
47
|
+
branch: string;
|
|
48
|
+
actor: ConnectActorRef;
|
|
49
|
+
knowledge: Array<{
|
|
50
|
+
spaceKey: string;
|
|
51
|
+
category: 'canonical' | 'operational' | 'external' | 'ephemeral';
|
|
52
|
+
trustLevel: 'high' | 'medium' | 'low';
|
|
53
|
+
source: string;
|
|
54
|
+
digest?: string;
|
|
55
|
+
}>;
|
|
56
|
+
impactedContracts: ConnectContractRef[];
|
|
57
|
+
affectedSurfaces: ConnectSurface[];
|
|
58
|
+
policyBindings: Array<{
|
|
59
|
+
key: string;
|
|
60
|
+
version: string;
|
|
61
|
+
source: 'contract' | 'canon-pack' | 'workspace-config';
|
|
62
|
+
authority: 'canonical' | 'operational';
|
|
63
|
+
}>;
|
|
64
|
+
configRefs: Array<{
|
|
65
|
+
kind: 'contractsrc' | 'artifact' | 'canon-pack';
|
|
66
|
+
ref: string;
|
|
67
|
+
}>;
|
|
68
|
+
acceptanceChecks: string[];
|
|
69
|
+
}
|
|
70
|
+
export interface ConnectPlanStep {
|
|
71
|
+
id: string;
|
|
72
|
+
summary: string;
|
|
73
|
+
paths?: string[];
|
|
74
|
+
commands?: string[];
|
|
75
|
+
contractRefs?: string[];
|
|
76
|
+
}
|
|
77
|
+
export interface ConnectPlanPacket {
|
|
78
|
+
id: string;
|
|
79
|
+
taskId: string;
|
|
80
|
+
repoId: string;
|
|
81
|
+
branch: string;
|
|
82
|
+
actor: ConnectActorRef;
|
|
83
|
+
objective: string;
|
|
84
|
+
steps: ConnectPlanStep[];
|
|
85
|
+
impactedContracts: ConnectContractRef[];
|
|
86
|
+
affectedSurfaces: ConnectSurface[];
|
|
87
|
+
requiredChecks: string[];
|
|
88
|
+
requiredApprovals: Array<{
|
|
89
|
+
capability: string;
|
|
90
|
+
reason: string;
|
|
91
|
+
}>;
|
|
92
|
+
riskScore: number;
|
|
93
|
+
verificationStatus: 'approved' | 'revise' | 'review' | 'denied';
|
|
94
|
+
controlPlane: {
|
|
95
|
+
intentSubmit: ConnectContractRef;
|
|
96
|
+
planCompile: ConnectContractRef;
|
|
97
|
+
planVerify: ConnectContractRef;
|
|
98
|
+
decisionId?: string;
|
|
99
|
+
traceId?: string;
|
|
100
|
+
};
|
|
101
|
+
acpActions?: Array<'acp.fs.access' | 'acp.terminal.exec' | 'acp.tool.calls'>;
|
|
102
|
+
}
|
|
103
|
+
export interface ConnectImpactedFile {
|
|
104
|
+
file: string;
|
|
105
|
+
contracts: ConnectContractRef[];
|
|
106
|
+
surfaces: ConnectSurface[];
|
|
107
|
+
policies: ConnectContractRef[];
|
|
108
|
+
}
|
|
109
|
+
export interface ConnectPatchVerdict {
|
|
110
|
+
decisionId: string;
|
|
111
|
+
summary?: string;
|
|
112
|
+
action: {
|
|
113
|
+
actionType: 'write_file' | 'edit_file' | 'run_command';
|
|
114
|
+
tool: 'acp.fs.access' | 'acp.terminal.exec' | 'acp.tool.calls';
|
|
115
|
+
target?: string;
|
|
116
|
+
cwd?: string;
|
|
117
|
+
};
|
|
118
|
+
impacted: ConnectImpactedFile[];
|
|
119
|
+
checks: Array<{
|
|
120
|
+
id: string;
|
|
121
|
+
status: 'pass' | 'fail' | 'warn';
|
|
122
|
+
detail: string;
|
|
123
|
+
}>;
|
|
124
|
+
verdict: ConnectVerdict;
|
|
125
|
+
controlPlane: {
|
|
126
|
+
verdict: 'autonomous' | 'assist' | 'blocked';
|
|
127
|
+
requiresApproval: boolean;
|
|
128
|
+
policyRef?: ConnectContractRef;
|
|
129
|
+
decisionId?: string;
|
|
130
|
+
approvalStatus?: ConnectApprovalStatus;
|
|
131
|
+
traceId?: string;
|
|
132
|
+
};
|
|
133
|
+
approvalOperationRefs?: string[];
|
|
134
|
+
remediation?: string[];
|
|
135
|
+
reviewPacketRef?: string;
|
|
136
|
+
retryBudget?: number;
|
|
137
|
+
replay: {
|
|
138
|
+
traceQuery: ConnectContractRef;
|
|
139
|
+
policyExplain?: ConnectContractRef;
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
export interface ConnectReviewPacket {
|
|
143
|
+
id: string;
|
|
144
|
+
sourceDecisionId: string;
|
|
145
|
+
objective: string;
|
|
146
|
+
reason: string;
|
|
147
|
+
summary: {
|
|
148
|
+
paths: string[];
|
|
149
|
+
impactedContracts: ConnectContractRef[];
|
|
150
|
+
affectedSurfaces: ConnectSurface[];
|
|
151
|
+
requiredChecks: string[];
|
|
152
|
+
};
|
|
153
|
+
evidence: Array<{
|
|
154
|
+
type: 'context-pack' | 'plan-packet' | 'patch-verdict' | 'control-plane-trace';
|
|
155
|
+
ref: string;
|
|
156
|
+
}>;
|
|
157
|
+
requiredApprovals: Array<{
|
|
158
|
+
capability: string;
|
|
159
|
+
reason: string;
|
|
160
|
+
}>;
|
|
161
|
+
controlPlane: {
|
|
162
|
+
traceQuery: ConnectContractRef;
|
|
163
|
+
policyExplain: ConnectContractRef;
|
|
164
|
+
decisionId?: string;
|
|
165
|
+
approvalStatus?: ConnectApprovalStatus;
|
|
166
|
+
traceId?: string;
|
|
167
|
+
};
|
|
168
|
+
studio?: {
|
|
169
|
+
enabled?: boolean;
|
|
170
|
+
mode?: 'off' | 'review-bridge';
|
|
171
|
+
queue?: string;
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
export interface ConnectPlanInput extends ConnectTaskInput {
|
|
175
|
+
candidate: {
|
|
176
|
+
objective: string;
|
|
177
|
+
steps?: Array<string | Omit<ConnectPlanStep, 'id'>>;
|
|
178
|
+
touchedPaths?: string[];
|
|
179
|
+
commands?: string[];
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
export interface ConnectVerifyFsAccessInput extends ConnectTaskInput {
|
|
183
|
+
tool: 'acp.fs.access';
|
|
184
|
+
operation: string;
|
|
185
|
+
path: string;
|
|
186
|
+
content?: string;
|
|
187
|
+
options?: Record<string, unknown>;
|
|
188
|
+
}
|
|
189
|
+
export interface ConnectVerifyTerminalExecInput extends ConnectTaskInput {
|
|
190
|
+
tool: 'acp.terminal.exec';
|
|
191
|
+
command: string;
|
|
192
|
+
cwd?: string;
|
|
193
|
+
touchedPaths?: string[];
|
|
194
|
+
}
|
|
195
|
+
export type ConnectVerifyInput = ConnectVerifyFsAccessInput | ConnectVerifyTerminalExecInput;
|
|
196
|
+
export interface ConnectCommandResult {
|
|
197
|
+
command: string;
|
|
198
|
+
cwd?: string;
|
|
199
|
+
exitCode: number;
|
|
200
|
+
stdout: string;
|
|
201
|
+
stderr: string;
|
|
202
|
+
}
|
|
203
|
+
export interface ConnectVerifyRuntime {
|
|
204
|
+
runCommand?: (command: string, options?: {
|
|
205
|
+
cwd?: string;
|
|
206
|
+
}) => Promise<ConnectCommandResult>;
|
|
207
|
+
}
|
|
208
|
+
export interface ConnectReplayResult {
|
|
209
|
+
decisionId: string;
|
|
210
|
+
historyDir: string;
|
|
211
|
+
contextPack?: ConnectContextPack;
|
|
212
|
+
planPacket?: ConnectPlanPacket;
|
|
213
|
+
patchVerdict?: ConnectPatchVerdict;
|
|
214
|
+
reviewPacket?: ConnectReviewPacket;
|
|
215
|
+
trace?: unknown;
|
|
216
|
+
replay?: unknown;
|
|
217
|
+
source: 'local' | 'local+control-plane';
|
|
218
|
+
}
|
|
219
|
+
export interface ConnectEvaluationRuntime {
|
|
220
|
+
runScenarioEvaluation(input: {
|
|
221
|
+
scenarioKey: string;
|
|
222
|
+
version?: string;
|
|
223
|
+
context?: Record<string, unknown>;
|
|
224
|
+
}): Promise<unknown>;
|
|
225
|
+
runSuiteEvaluation(input: {
|
|
226
|
+
suiteKey: string;
|
|
227
|
+
version?: string;
|
|
228
|
+
context?: Record<string, unknown>;
|
|
229
|
+
}): Promise<unknown>;
|
|
230
|
+
}
|
|
231
|
+
export interface ConnectEvalInput extends ConnectWorkspaceInput {
|
|
232
|
+
decisionId: string;
|
|
233
|
+
scenarioKey?: string;
|
|
234
|
+
suiteKey?: string;
|
|
235
|
+
version?: string;
|
|
236
|
+
}
|
|
237
|
+
export interface ConnectReviewListItem {
|
|
238
|
+
filePath: string;
|
|
239
|
+
packet: ConnectReviewPacket;
|
|
240
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ConnectCommandState } from './command-policy';
|
|
2
|
+
import { buildConnectContextPack } from './context';
|
|
3
|
+
import { compileConnectPlanPacket } from './plan';
|
|
4
|
+
import { resolveWorkspace } from './shared';
|
|
5
|
+
import type { ConnectPatchVerdict, ConnectReviewPacket, ConnectRuntimeLink, ConnectVerdict, ConnectVerifyInput } from './types';
|
|
6
|
+
export declare function checkForPathBoundary(immutable?: string, protectedPath?: string, generatedPath?: string): {
|
|
7
|
+
readonly id: "path-boundary";
|
|
8
|
+
readonly status: "warn" | "pass" | "fail";
|
|
9
|
+
readonly detail: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function checkForCommandPolicy(commandState: ConnectCommandState, commandMatch?: string): {
|
|
12
|
+
readonly id: "command-policy";
|
|
13
|
+
readonly status: "warn" | "pass" | "fail";
|
|
14
|
+
readonly detail: string;
|
|
15
|
+
};
|
|
16
|
+
export declare function checkForImpact(breakingChange: boolean, contractDrift: boolean, unknownImpact: boolean): {
|
|
17
|
+
readonly id: "impact-analysis";
|
|
18
|
+
readonly status: "warn" | "pass" | "fail";
|
|
19
|
+
readonly detail: "Breaking change detected." | "Generated-path drift detected." | "Impact could not be resolved." | "Impact resolved.";
|
|
20
|
+
};
|
|
21
|
+
export declare function buildReviewPacket(workspace: ReturnType<typeof resolveWorkspace>, decisionId: string, contextPack: Awaited<ReturnType<typeof buildConnectContextPack>>, planPacket: Awaited<ReturnType<typeof compileConnectPlanPacket>>['planPacket'], touchedPaths: string[], input: {
|
|
22
|
+
artifactRefs: {
|
|
23
|
+
contextPack: string;
|
|
24
|
+
planPacket: string;
|
|
25
|
+
patchVerdict: string;
|
|
26
|
+
};
|
|
27
|
+
reason: string;
|
|
28
|
+
runtimeLink?: ConnectRuntimeLink | null;
|
|
29
|
+
}): ConnectReviewPacket;
|
|
30
|
+
export declare function buildPatchVerdict(decisionId: string, input: ConnectVerifyInput, contextPack: Awaited<ReturnType<typeof buildConnectContextPack>>, planPacket: Awaited<ReturnType<typeof compileConnectPlanPacket>>['planPacket'], impactedFiles: ConnectPatchVerdict['impacted'], checks: ConnectPatchVerdict['checks'], verdict: ConnectVerdict, reviewPacketRef?: string, runtimeLink?: ConnectRuntimeLink | null): ConnectPatchVerdict;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { WorkspaceAdapters } from '../../ports/logger';
|
|
2
|
+
import { buildConnectContextPack } from './context';
|
|
3
|
+
import { compileConnectPlanPacket } from './plan';
|
|
4
|
+
import type { ConnectControlPlaneRuntime } from './runtime-types';
|
|
5
|
+
import type { ConnectPatchVerdict, ConnectReviewPacket, ConnectVerifyInput, ConnectVerifyRuntime } from './types';
|
|
6
|
+
export declare function verifyConnectMutation(adapters: Pick<WorkspaceAdapters, 'fs' | 'git' | 'logger'>, input: ConnectVerifyInput, runtime?: ConnectVerifyRuntime & {
|
|
7
|
+
controlPlane?: ConnectControlPlaneRuntime;
|
|
8
|
+
now?: () => Date;
|
|
9
|
+
}): Promise<{
|
|
10
|
+
contextPack: Awaited<ReturnType<typeof buildConnectContextPack>>;
|
|
11
|
+
planPacket: Awaited<ReturnType<typeof compileConnectPlanPacket>>['planPacket'];
|
|
12
|
+
patchVerdict: ConnectPatchVerdict;
|
|
13
|
+
reviewPacket?: ConnectReviewPacket;
|
|
14
|
+
historyDir: string;
|
|
15
|
+
}>;
|
package/dist/services/drift.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Detects when generated artifacts are out of sync with their source specs.
|
|
5
5
|
*/
|
|
6
6
|
import type { WorkspaceAdapters } from '../ports/logger';
|
|
7
|
+
import { type GenerateArtifactsOptions } from './generate-artifacts';
|
|
7
8
|
/**
|
|
8
9
|
* Result of drift detection.
|
|
9
10
|
*/
|
|
@@ -24,4 +25,7 @@ export interface DriftResult {
|
|
|
24
25
|
* @param generatedDir - Directory containing generated artifacts
|
|
25
26
|
* @returns Result indicating if drift exists and which files are affected
|
|
26
27
|
*/
|
|
27
|
-
export declare function detectDrift(adapters: WorkspaceAdapters, contractsDir: string, generatedDir: string
|
|
28
|
+
export declare function detectDrift(adapters: WorkspaceAdapters, contractsDir: string, generatedDir: string, options?: {
|
|
29
|
+
generation?: GenerateArtifactsOptions;
|
|
30
|
+
rootPath?: string;
|
|
31
|
+
}): Promise<DriftResult>;
|
|
@@ -3,4 +3,9 @@ export interface GenerateArtifactsResult {
|
|
|
3
3
|
specsCount: number;
|
|
4
4
|
docsCount: number;
|
|
5
5
|
}
|
|
6
|
-
export
|
|
6
|
+
export interface GenerateArtifactsOptions {
|
|
7
|
+
scanAllSpecs?: boolean;
|
|
8
|
+
specPattern?: string;
|
|
9
|
+
specSearchRoot?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function generateArtifacts(adapters: WorkspaceAdapters, contractsDir: string, generatedDir: string, rootPath?: string, options?: GenerateArtifactsOptions): Promise<GenerateArtifactsResult>;
|