@wopr-network/defcon 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +274 -0
- package/dist/api/router.d.ts +24 -0
- package/dist/api/router.js +44 -0
- package/dist/api/server.d.ts +13 -0
- package/dist/api/server.js +280 -0
- package/dist/api/wire-types.d.ts +46 -0
- package/dist/api/wire-types.js +5 -0
- package/dist/config/db-path.d.ts +1 -0
- package/dist/config/db-path.js +1 -0
- package/dist/config/exporter.d.ts +3 -0
- package/dist/config/exporter.js +87 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.js +4 -0
- package/dist/config/seed-loader.d.ts +10 -0
- package/dist/config/seed-loader.js +108 -0
- package/dist/config/zod-schemas.d.ts +165 -0
- package/dist/config/zod-schemas.js +283 -0
- package/dist/cors.d.ts +8 -0
- package/dist/cors.js +21 -0
- package/dist/engine/constants.d.ts +1 -0
- package/dist/engine/constants.js +1 -0
- package/dist/engine/engine.d.ts +69 -0
- package/dist/engine/engine.js +485 -0
- package/dist/engine/event-emitter.d.ts +9 -0
- package/dist/engine/event-emitter.js +19 -0
- package/dist/engine/event-types.d.ts +105 -0
- package/dist/engine/event-types.js +1 -0
- package/dist/engine/flow-spawner.d.ts +8 -0
- package/dist/engine/flow-spawner.js +28 -0
- package/dist/engine/gate-command-validator.d.ts +6 -0
- package/dist/engine/gate-command-validator.js +46 -0
- package/dist/engine/gate-evaluator.d.ts +12 -0
- package/dist/engine/gate-evaluator.js +233 -0
- package/dist/engine/handlebars.d.ts +9 -0
- package/dist/engine/handlebars.js +51 -0
- package/dist/engine/index.d.ts +12 -0
- package/dist/engine/index.js +7 -0
- package/dist/engine/invocation-builder.d.ts +18 -0
- package/dist/engine/invocation-builder.js +58 -0
- package/dist/engine/on-enter.d.ts +8 -0
- package/dist/engine/on-enter.js +102 -0
- package/dist/engine/ssrf-guard.d.ts +22 -0
- package/dist/engine/ssrf-guard.js +159 -0
- package/dist/engine/state-machine.d.ts +12 -0
- package/dist/engine/state-machine.js +74 -0
- package/dist/execution/active-runner.d.ts +45 -0
- package/dist/execution/active-runner.js +165 -0
- package/dist/execution/admin-schemas.d.ts +116 -0
- package/dist/execution/admin-schemas.js +125 -0
- package/dist/execution/cli.d.ts +57 -0
- package/dist/execution/cli.js +498 -0
- package/dist/execution/handlers/admin.d.ts +67 -0
- package/dist/execution/handlers/admin.js +200 -0
- package/dist/execution/handlers/flow.d.ts +25 -0
- package/dist/execution/handlers/flow.js +289 -0
- package/dist/execution/handlers/query.d.ts +31 -0
- package/dist/execution/handlers/query.js +64 -0
- package/dist/execution/index.d.ts +4 -0
- package/dist/execution/index.js +3 -0
- package/dist/execution/mcp-helpers.d.ts +42 -0
- package/dist/execution/mcp-helpers.js +23 -0
- package/dist/execution/mcp-server.d.ts +33 -0
- package/dist/execution/mcp-server.js +1020 -0
- package/dist/execution/provision-worktree.d.ts +16 -0
- package/dist/execution/provision-worktree.js +123 -0
- package/dist/execution/tool-schemas.d.ts +40 -0
- package/dist/execution/tool-schemas.js +44 -0
- package/dist/gates/blocking-graph.d.ts +26 -0
- package/dist/gates/blocking-graph.js +102 -0
- package/dist/gates/test/bad-return-gate.d.ts +1 -0
- package/dist/gates/test/bad-return-gate.js +4 -0
- package/dist/gates/test/passing-gate.d.ts +2 -0
- package/dist/gates/test/passing-gate.js +3 -0
- package/dist/gates/test/slow-gate.d.ts +2 -0
- package/dist/gates/test/slow-gate.js +5 -0
- package/dist/gates/test/throwing-gate.d.ts +1 -0
- package/dist/gates/test/throwing-gate.js +3 -0
- package/dist/logger.d.ts +8 -0
- package/dist/logger.js +12 -0
- package/dist/main.d.ts +14 -0
- package/dist/main.js +28 -0
- package/dist/repositories/drizzle/entity.repo.d.ts +27 -0
- package/dist/repositories/drizzle/entity.repo.js +190 -0
- package/dist/repositories/drizzle/event.repo.d.ts +12 -0
- package/dist/repositories/drizzle/event.repo.js +24 -0
- package/dist/repositories/drizzle/flow.repo.d.ts +22 -0
- package/dist/repositories/drizzle/flow.repo.js +364 -0
- package/dist/repositories/drizzle/gate.repo.d.ts +16 -0
- package/dist/repositories/drizzle/gate.repo.js +98 -0
- package/dist/repositories/drizzle/index.d.ts +6 -0
- package/dist/repositories/drizzle/index.js +7 -0
- package/dist/repositories/drizzle/invocation.repo.d.ts +23 -0
- package/dist/repositories/drizzle/invocation.repo.js +199 -0
- package/dist/repositories/drizzle/schema.d.ts +1932 -0
- package/dist/repositories/drizzle/schema.js +155 -0
- package/dist/repositories/drizzle/transition-log.repo.d.ts +11 -0
- package/dist/repositories/drizzle/transition-log.repo.js +42 -0
- package/dist/repositories/interfaces.d.ts +321 -0
- package/dist/repositories/interfaces.js +2 -0
- package/dist/src/api/router.d.ts +24 -0
- package/dist/src/api/router.js +44 -0
- package/dist/src/api/server.d.ts +13 -0
- package/dist/src/api/server.js +280 -0
- package/dist/src/api/wire-types.d.ts +46 -0
- package/dist/src/api/wire-types.js +5 -0
- package/dist/src/config/db-path.d.ts +1 -0
- package/dist/src/config/db-path.js +1 -0
- package/dist/src/config/exporter.d.ts +3 -0
- package/dist/src/config/exporter.js +87 -0
- package/dist/src/config/index.d.ts +4 -0
- package/dist/src/config/index.js +4 -0
- package/dist/src/config/seed-loader.d.ts +14 -0
- package/dist/src/config/seed-loader.js +131 -0
- package/dist/src/config/zod-schemas.d.ts +165 -0
- package/dist/src/config/zod-schemas.js +283 -0
- package/dist/src/cors.d.ts +8 -0
- package/dist/src/cors.js +21 -0
- package/dist/src/engine/constants.d.ts +1 -0
- package/dist/src/engine/constants.js +1 -0
- package/dist/src/engine/engine.d.ts +69 -0
- package/dist/src/engine/engine.js +485 -0
- package/dist/src/engine/event-emitter.d.ts +9 -0
- package/dist/src/engine/event-emitter.js +19 -0
- package/dist/src/engine/event-types.d.ts +105 -0
- package/dist/src/engine/event-types.js +1 -0
- package/dist/src/engine/flow-spawner.d.ts +8 -0
- package/dist/src/engine/flow-spawner.js +28 -0
- package/dist/src/engine/gate-command-validator.d.ts +6 -0
- package/dist/src/engine/gate-command-validator.js +46 -0
- package/dist/src/engine/gate-evaluator.d.ts +12 -0
- package/dist/src/engine/gate-evaluator.js +233 -0
- package/dist/src/engine/handlebars.d.ts +9 -0
- package/dist/src/engine/handlebars.js +51 -0
- package/dist/src/engine/index.d.ts +12 -0
- package/dist/src/engine/index.js +7 -0
- package/dist/src/engine/invocation-builder.d.ts +18 -0
- package/dist/src/engine/invocation-builder.js +58 -0
- package/dist/src/engine/on-enter.d.ts +8 -0
- package/dist/src/engine/on-enter.js +102 -0
- package/dist/src/engine/ssrf-guard.d.ts +22 -0
- package/dist/src/engine/ssrf-guard.js +159 -0
- package/dist/src/engine/state-machine.d.ts +12 -0
- package/dist/src/engine/state-machine.js +74 -0
- package/dist/src/execution/active-runner.d.ts +45 -0
- package/dist/src/execution/active-runner.js +165 -0
- package/dist/src/execution/admin-schemas.d.ts +116 -0
- package/dist/src/execution/admin-schemas.js +125 -0
- package/dist/src/execution/cli.d.ts +57 -0
- package/dist/src/execution/cli.js +501 -0
- package/dist/src/execution/handlers/admin.d.ts +67 -0
- package/dist/src/execution/handlers/admin.js +200 -0
- package/dist/src/execution/handlers/flow.d.ts +25 -0
- package/dist/src/execution/handlers/flow.js +289 -0
- package/dist/src/execution/handlers/query.d.ts +31 -0
- package/dist/src/execution/handlers/query.js +64 -0
- package/dist/src/execution/index.d.ts +4 -0
- package/dist/src/execution/index.js +3 -0
- package/dist/src/execution/mcp-helpers.d.ts +42 -0
- package/dist/src/execution/mcp-helpers.js +23 -0
- package/dist/src/execution/mcp-server.d.ts +33 -0
- package/dist/src/execution/mcp-server.js +1020 -0
- package/dist/src/execution/provision-worktree.d.ts +16 -0
- package/dist/src/execution/provision-worktree.js +123 -0
- package/dist/src/execution/tool-schemas.d.ts +40 -0
- package/dist/src/execution/tool-schemas.js +44 -0
- package/dist/src/logger.d.ts +8 -0
- package/dist/src/logger.js +12 -0
- package/dist/src/main.d.ts +14 -0
- package/dist/src/main.js +28 -0
- package/dist/src/repositories/drizzle/entity.repo.d.ts +27 -0
- package/dist/src/repositories/drizzle/entity.repo.js +190 -0
- package/dist/src/repositories/drizzle/event.repo.d.ts +12 -0
- package/dist/src/repositories/drizzle/event.repo.js +24 -0
- package/dist/src/repositories/drizzle/flow.repo.d.ts +22 -0
- package/dist/src/repositories/drizzle/flow.repo.js +364 -0
- package/dist/src/repositories/drizzle/gate.repo.d.ts +16 -0
- package/dist/src/repositories/drizzle/gate.repo.js +98 -0
- package/dist/src/repositories/drizzle/index.d.ts +6 -0
- package/dist/src/repositories/drizzle/index.js +7 -0
- package/dist/src/repositories/drizzle/invocation.repo.d.ts +23 -0
- package/dist/src/repositories/drizzle/invocation.repo.js +199 -0
- package/dist/src/repositories/drizzle/schema.d.ts +1932 -0
- package/dist/src/repositories/drizzle/schema.js +155 -0
- package/dist/src/repositories/drizzle/transition-log.repo.d.ts +11 -0
- package/dist/src/repositories/drizzle/transition-log.repo.js +42 -0
- package/dist/src/repositories/interfaces.d.ts +321 -0
- package/dist/src/repositories/interfaces.js +2 -0
- package/dist/src/utils/redact.d.ts +2 -0
- package/dist/src/utils/redact.js +62 -0
- package/dist/utils/redact.d.ts +2 -0
- package/dist/utils/redact.js +62 -0
- package/drizzle/.gitkeep +0 -0
- package/drizzle/0000_simple_surge.sql +144 -0
- package/drizzle/0001_peaceful_marvel_apes.sql +18 -0
- package/drizzle/0002_add_invocations_created_at.sql +1 -0
- package/drizzle/0003_drop_integration_config.sql +1 -0
- package/drizzle/0004_add_flow_discipline.sql +2 -0
- package/drizzle/0004_lucky_silverclaw.sql +5 -0
- package/drizzle/0005_old_blue_shield.sql +2 -0
- package/drizzle/0006_solid_magik.sql +2 -0
- package/drizzle/0007_fancy_luke_cage.sql +1 -0
- package/drizzle/0008_thick_dark_beast.sql +1 -0
- package/drizzle/0009_brief_midnight.sql +1 -0
- package/drizzle/0010_amusing_bastion.sql +1 -0
- package/drizzle/meta/0000_snapshot.json +996 -0
- package/drizzle/meta/0004_snapshot.json +1008 -0
- package/drizzle/meta/0005_snapshot.json +1023 -0
- package/drizzle/meta/0006_snapshot.json +1037 -0
- package/drizzle/meta/0007_snapshot.json +1044 -0
- package/drizzle/meta/0008_snapshot.json +1051 -0
- package/drizzle/meta/0009_snapshot.json +1058 -0
- package/drizzle/meta/0010_snapshot.json +1065 -0
- package/drizzle/meta/_journal.json +83 -0
- package/gates/.gitkeep +0 -0
- package/gates/blocking-graph.d.ts +26 -0
- package/gates/blocking-graph.js +102 -0
- package/gates/blocking-graph.ts +121 -0
- package/gates/check-design-posted.sh +39 -0
- package/gates/check-merge.sh +51 -0
- package/gates/check-pr-capacity.sh +17 -0
- package/gates/check-review-ready.sh +47 -0
- package/gates/check-spec-posted.sh +34 -0
- package/gates/check-unblocked.sh +56 -0
- package/gates/ci-green.sh +9 -0
- package/gates/merge-queue.sh +14 -0
- package/gates/review-bots-ready.sh +9 -0
- package/gates/spec-posted.sh +31 -0
- package/gates/test/bad-return-gate.d.ts +1 -0
- package/gates/test/bad-return-gate.js +4 -0
- package/gates/test/bad-return-gate.ts +4 -0
- package/gates/test/passing-gate.d.ts +2 -0
- package/gates/test/passing-gate.js +3 -0
- package/gates/test/passing-gate.ts +5 -0
- package/gates/test/slow-gate.d.ts +2 -0
- package/gates/test/slow-gate.js +5 -0
- package/gates/test/slow-gate.ts +7 -0
- package/gates/test/throwing-gate.d.ts +1 -0
- package/gates/test/throwing-gate.js +3 -0
- package/gates/test/throwing-gate.ts +3 -0
- package/gates/test-fail.sh +2 -0
- package/gates/test-pass.sh +2 -0
- package/gates/timeout-gate-script.sh +3 -0
- package/package.json +64 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Engine } from "../engine/engine.js";
|
|
2
|
+
import type { IEntityRepository, IEventRepository, IFlowRepository, IGateRepository, IInvocationRepository, ITransitionLogRepository } from "../repositories/interfaces.js";
|
|
3
|
+
export interface McpServerDeps {
|
|
4
|
+
entities: IEntityRepository;
|
|
5
|
+
flows: IFlowRepository;
|
|
6
|
+
invocations: IInvocationRepository;
|
|
7
|
+
gates: IGateRepository;
|
|
8
|
+
transitions: ITransitionLogRepository;
|
|
9
|
+
eventRepo: IEventRepository;
|
|
10
|
+
engine?: Engine;
|
|
11
|
+
}
|
|
12
|
+
export declare function jsonResult(data: unknown): {
|
|
13
|
+
content: {
|
|
14
|
+
type: "text";
|
|
15
|
+
text: string;
|
|
16
|
+
}[];
|
|
17
|
+
};
|
|
18
|
+
export declare function errorResult(message: string): {
|
|
19
|
+
content: {
|
|
20
|
+
type: "text";
|
|
21
|
+
text: string;
|
|
22
|
+
}[];
|
|
23
|
+
isError: boolean;
|
|
24
|
+
};
|
|
25
|
+
export declare function validateInput<T>(schema: {
|
|
26
|
+
safeParse: (data: unknown) => {
|
|
27
|
+
success: boolean;
|
|
28
|
+
data?: T;
|
|
29
|
+
error?: {
|
|
30
|
+
issues: unknown[];
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
}, args: Record<string, unknown>): {
|
|
34
|
+
ok: true;
|
|
35
|
+
data: T;
|
|
36
|
+
} | {
|
|
37
|
+
ok: false;
|
|
38
|
+
result: ReturnType<typeof errorResult>;
|
|
39
|
+
};
|
|
40
|
+
export declare function emitDefinitionChanged(eventRepo: IEventRepository, flowId: string | null, tool: string, payload: Record<string, unknown>, logger?: {
|
|
41
|
+
error: (...args: unknown[]) => void;
|
|
42
|
+
}): void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function jsonResult(data) {
|
|
2
|
+
return {
|
|
3
|
+
content: [{ type: "text", text: JSON.stringify(data) }],
|
|
4
|
+
};
|
|
5
|
+
}
|
|
6
|
+
export function errorResult(message) {
|
|
7
|
+
return {
|
|
8
|
+
content: [{ type: "text", text: message }],
|
|
9
|
+
isError: true,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function validateInput(schema, args) {
|
|
13
|
+
const parsed = schema.safeParse(args);
|
|
14
|
+
if (!parsed.success) {
|
|
15
|
+
return { ok: false, result: errorResult(`Validation error: ${JSON.stringify(parsed.error?.issues)}`) };
|
|
16
|
+
}
|
|
17
|
+
return { ok: true, data: parsed.data };
|
|
18
|
+
}
|
|
19
|
+
export function emitDefinitionChanged(eventRepo, flowId, tool, payload, logger) {
|
|
20
|
+
eventRepo.emitDefinitionChanged(flowId, tool, payload).catch((err) => {
|
|
21
|
+
logger?.error("[mcp] emitDefinitionChanged error:", err);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
|
+
import type { Engine } from "../engine/engine.js";
|
|
3
|
+
import type { Logger } from "../logger.js";
|
|
4
|
+
import type { IEntityRepository, IEventRepository, IFlowRepository, IGateRepository, IInvocationRepository, ITransitionLogRepository } from "../repositories/interfaces.js";
|
|
5
|
+
export interface McpServerDeps {
|
|
6
|
+
entities: IEntityRepository;
|
|
7
|
+
flows: IFlowRepository;
|
|
8
|
+
invocations: IInvocationRepository;
|
|
9
|
+
gates: IGateRepository;
|
|
10
|
+
transitions: ITransitionLogRepository;
|
|
11
|
+
eventRepo: IEventRepository;
|
|
12
|
+
engine?: Engine;
|
|
13
|
+
logger?: Logger;
|
|
14
|
+
}
|
|
15
|
+
export interface McpServerOpts {
|
|
16
|
+
/** DEFCON_ADMIN_TOKEN — if set, admin.* tools require this token */
|
|
17
|
+
adminToken?: string;
|
|
18
|
+
/** DEFCON_WORKER_TOKEN — if set, flow.* tools require this token */
|
|
19
|
+
workerToken?: string;
|
|
20
|
+
/** Token provided by the caller (from HTTP Authorization header, or undefined for stdio) */
|
|
21
|
+
callerToken?: string;
|
|
22
|
+
/** When true, skip token validation (stdio is local-process-only and inherently trusted) */
|
|
23
|
+
stdioTrusted?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare function createMcpServer(deps: McpServerDeps, opts?: McpServerOpts): Server;
|
|
26
|
+
export declare function callToolHandler(deps: McpServerDeps, name: string, safeArgs: Record<string, unknown>, opts?: McpServerOpts): Promise<{
|
|
27
|
+
content: {
|
|
28
|
+
type: "text";
|
|
29
|
+
text: string;
|
|
30
|
+
}[];
|
|
31
|
+
}>;
|
|
32
|
+
/** Start the MCP server on stdio transport. */
|
|
33
|
+
export declare function startStdioServer(deps: McpServerDeps, opts?: McpServerOpts): Promise<void>;
|