planpong 0.2.1 → 0.4.2
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/src/core/convergence.d.ts +46 -2
- package/dist/src/core/convergence.js +278 -6
- package/dist/src/core/convergence.js.map +1 -1
- package/dist/src/core/loop.d.ts +3 -3
- package/dist/src/core/loop.js +20 -8
- package/dist/src/core/loop.js.map +1 -1
- package/dist/src/core/operations.d.ts +14 -4
- package/dist/src/core/operations.js +140 -48
- package/dist/src/core/operations.js.map +1 -1
- package/dist/src/core/session.d.ts +3 -3
- package/dist/src/core/session.js.map +1 -1
- package/dist/src/mcp/server.js +25 -1
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/mcp/tools/get-feedback.js +32 -6
- package/dist/src/mcp/tools/get-feedback.js.map +1 -1
- package/dist/src/mcp/tools/get-report.d.ts +2 -0
- package/dist/src/mcp/tools/get-report.js +152 -0
- package/dist/src/mcp/tools/get-report.js.map +1 -0
- package/dist/src/prompts/planner.d.ts +1 -1
- package/dist/src/prompts/planner.js +39 -19
- package/dist/src/prompts/planner.js.map +1 -1
- package/dist/src/prompts/reviewer.d.ts +1 -1
- package/dist/src/prompts/reviewer.js +120 -15
- package/dist/src/prompts/reviewer.js.map +1 -1
- package/dist/src/providers/claude.d.ts +3 -0
- package/dist/src/providers/claude.js +134 -12
- package/dist/src/providers/claude.js.map +1 -1
- package/dist/src/providers/codex.d.ts +3 -0
- package/dist/src/providers/codex.js +101 -12
- package/dist/src/providers/codex.js.map +1 -1
- package/dist/src/providers/types.d.ts +49 -3
- package/dist/src/schemas/feedback.d.ts +236 -5
- package/dist/src/schemas/feedback.js +52 -1
- package/dist/src/schemas/feedback.js.map +1 -1
- package/dist/src/schemas/json-schema.d.ts +9 -0
- package/dist/src/schemas/json-schema.js +153 -0
- package/dist/src/schemas/json-schema.js.map +1 -0
- package/dist/src/schemas/session.d.ts +3 -3
- package/dist/src/schemas/session.js +1 -1
- package/dist/src/schemas/session.js.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { zodToJsonSchema } from "zod-to-json-schema";
|
|
2
|
+
import { DirectionFeedbackSchema, RiskFeedbackSchema, ReviewFeedbackSchema, } from "./feedback.js";
|
|
3
|
+
import { PlannerRevisionSchema } from "./revision.js";
|
|
4
|
+
/**
|
|
5
|
+
* JSON Schemas generated from Zod schemas, used for constrained model output
|
|
6
|
+
* via `claude --json-schema` and `codex --output-schema`.
|
|
7
|
+
*
|
|
8
|
+
* KNOWN LIMITATION: Zod refinements (e.g., the `approved_with_notes` severity
|
|
9
|
+
* constraint on ReviewFeedbackSchema) and transforms do NOT round-trip to
|
|
10
|
+
* JSON Schema. The generated JSON Schema enforces structural validity only.
|
|
11
|
+
* Semantic rules are validated post-parse by Zod in convergence.ts.
|
|
12
|
+
*
|
|
13
|
+
* Schemas are generated once at module load and cached as constants.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Internal observability fields on feedback schemas — set by the parser
|
|
17
|
+
* after the model responds. These must NOT appear in the schema sent to
|
|
18
|
+
* the model, since the model doesn't produce them.
|
|
19
|
+
*/
|
|
20
|
+
const OBSERVABILITY_FIELDS = new Set([
|
|
21
|
+
"fallback_used",
|
|
22
|
+
"missing_phase_fields",
|
|
23
|
+
]);
|
|
24
|
+
function stripObservabilityFields(node) {
|
|
25
|
+
if (Array.isArray(node))
|
|
26
|
+
return node.map(stripObservabilityFields);
|
|
27
|
+
if (node && typeof node === "object") {
|
|
28
|
+
const obj = node;
|
|
29
|
+
const result = {};
|
|
30
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
31
|
+
if (key === "properties" && value && typeof value === "object") {
|
|
32
|
+
const props = value;
|
|
33
|
+
const filtered = {};
|
|
34
|
+
for (const [propKey, propValue] of Object.entries(props)) {
|
|
35
|
+
if (!OBSERVABILITY_FIELDS.has(propKey)) {
|
|
36
|
+
filtered[propKey] = stripObservabilityFields(propValue);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
result[key] = filtered;
|
|
40
|
+
}
|
|
41
|
+
else if (key === "required" && Array.isArray(value)) {
|
|
42
|
+
result[key] = value.filter((k) => typeof k !== "string" || !OBSERVABILITY_FIELDS.has(k));
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
result[key] = stripObservabilityFields(value);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
return node;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Transform a JSON Schema to the OpenAI-strict dialect required by Codex
|
|
54
|
+
* (and most OpenAI-compatible providers) for structured output:
|
|
55
|
+
*
|
|
56
|
+
* - Every `object` node must have `additionalProperties: false`
|
|
57
|
+
* - Every property must appear in `required`
|
|
58
|
+
* - Optional properties are expressed as nullable (type union with "null")
|
|
59
|
+
*
|
|
60
|
+
* Input: a JSON Schema 7 document generated from Zod (with optional fields
|
|
61
|
+
* missing from `required`).
|
|
62
|
+
* Output: an OpenAI-strict JSON Schema that is accepted by strict mode and
|
|
63
|
+
* still structurally compatible with the original Zod validation.
|
|
64
|
+
*
|
|
65
|
+
* Anthropic's validator accepts the stricter form, so we apply this
|
|
66
|
+
* transformation universally rather than per-provider.
|
|
67
|
+
*/
|
|
68
|
+
function toOpenAIStrict(node) {
|
|
69
|
+
if (Array.isArray(node))
|
|
70
|
+
return node.map(toOpenAIStrict);
|
|
71
|
+
if (!node || typeof node !== "object")
|
|
72
|
+
return node;
|
|
73
|
+
const obj = node;
|
|
74
|
+
const result = {};
|
|
75
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
76
|
+
result[key] = toOpenAIStrict(value);
|
|
77
|
+
}
|
|
78
|
+
// Only transform object nodes that have properties
|
|
79
|
+
if (result.type !== "object" ||
|
|
80
|
+
!result.properties ||
|
|
81
|
+
typeof result.properties !== "object") {
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
const properties = result.properties;
|
|
85
|
+
const originalRequired = new Set(Array.isArray(result.required) ? result.required : []);
|
|
86
|
+
const allKeys = Object.keys(properties);
|
|
87
|
+
// Every property must be in `required`
|
|
88
|
+
result.required = allKeys;
|
|
89
|
+
// Previously optional fields → mark as nullable
|
|
90
|
+
for (const propKey of allKeys) {
|
|
91
|
+
if (!originalRequired.has(propKey)) {
|
|
92
|
+
properties[propKey] = makeNullable(properties[propKey]);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Every object needs `additionalProperties: false`
|
|
96
|
+
if (result.additionalProperties === undefined) {
|
|
97
|
+
result.additionalProperties = false;
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Make a JSON Schema node accept null in addition to its existing type.
|
|
103
|
+
* - Simple type: `{ type: "string" }` → `{ type: ["string", "null"] }`
|
|
104
|
+
* - Enum: `{ type: "string", enum: [...] }` → `{ type: ["string", "null"], enum: [..., null] }`
|
|
105
|
+
* - Union types: append "null" if not present
|
|
106
|
+
* - Other constructs: wrap in `anyOf` with null
|
|
107
|
+
*/
|
|
108
|
+
function makeNullable(node) {
|
|
109
|
+
if (!node || typeof node !== "object")
|
|
110
|
+
return node;
|
|
111
|
+
const obj = { ...node };
|
|
112
|
+
const existingType = obj.type;
|
|
113
|
+
if (typeof existingType === "string") {
|
|
114
|
+
obj.type = [existingType, "null"];
|
|
115
|
+
}
|
|
116
|
+
else if (Array.isArray(existingType)) {
|
|
117
|
+
if (!existingType.includes("null")) {
|
|
118
|
+
obj.type = [...existingType, "null"];
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
// No concrete type (e.g., anyOf/oneOf) — wrap in anyOf
|
|
123
|
+
return { anyOf: [node, { type: "null" }] };
|
|
124
|
+
}
|
|
125
|
+
// If the node has an enum, also add null as a valid enum value
|
|
126
|
+
if (Array.isArray(obj.enum) && !obj.enum.includes(null)) {
|
|
127
|
+
obj.enum = [...obj.enum, null];
|
|
128
|
+
}
|
|
129
|
+
return obj;
|
|
130
|
+
}
|
|
131
|
+
function generate(schema) {
|
|
132
|
+
const raw = zodToJsonSchema(schema, {
|
|
133
|
+
target: "jsonSchema7",
|
|
134
|
+
$refStrategy: "none",
|
|
135
|
+
});
|
|
136
|
+
const stripped = stripObservabilityFields(raw);
|
|
137
|
+
return toOpenAIStrict(stripped);
|
|
138
|
+
}
|
|
139
|
+
export const DirectionFeedbackJsonSchema = generate(DirectionFeedbackSchema);
|
|
140
|
+
export const RiskFeedbackJsonSchema = generate(RiskFeedbackSchema);
|
|
141
|
+
export const ReviewFeedbackJsonSchema = generate(ReviewFeedbackSchema);
|
|
142
|
+
export const PlannerRevisionJsonSchema = generate(PlannerRevisionSchema);
|
|
143
|
+
/**
|
|
144
|
+
* Get the JSON Schema appropriate for a given review phase.
|
|
145
|
+
*/
|
|
146
|
+
export function getFeedbackJsonSchemaForPhase(phase) {
|
|
147
|
+
if (phase === "direction")
|
|
148
|
+
return DirectionFeedbackJsonSchema;
|
|
149
|
+
if (phase === "risk")
|
|
150
|
+
return RiskFeedbackJsonSchema;
|
|
151
|
+
return ReviewFeedbackJsonSchema;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=json-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../../../src/schemas/json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGtD;;;;;;;;;;GAUG;AAEH;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,eAAe;IACf,sBAAsB;CACvB,CAAC,CAAC;AAEH,SAAS,wBAAwB,CAAC,IAAa;IAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACnE,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAA+B,CAAC;QAC5C,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,KAAK,YAAY,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC/D,MAAM,KAAK,GAAG,KAAgC,CAAC;gBAC/C,MAAM,QAAQ,GAA4B,EAAE,CAAC;gBAC7C,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;wBACvC,QAAQ,CAAC,OAAO,CAAC,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;YACzB,CAAC;iBAAM,IAAI,GAAG,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAC7D,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,cAAc,CAAC,IAAa;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEnD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,mDAAmD;IACnD,IACE,MAAM,CAAC,IAAI,KAAK,QAAQ;QACxB,CAAC,MAAM,CAAC,UAAU;QAClB,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EACrC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,UAAqC,CAAC;IAChE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,QAAqB,CAAC,CAAC,CAAC,EAAE,CACpE,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAExC,uCAAuC;IACvC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;IAE1B,gDAAgD;IAChD,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,UAAU,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,IAAa;IACjC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,GAAG,GAAG,EAAE,GAAI,IAAgC,EAAE,CAAC;IACrD,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC;IAE9B,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,GAAG,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,YAAY,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,uDAAuD;QACvD,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC7C,CAAC;IAED,+DAA+D;IAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,MAA6C;IAC7D,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,EAAE;QAClC,MAAM,EAAE,aAAa;QACrB,YAAY,EAAE,MAAM;KACrB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,cAAc,CAAC,QAAQ,CAA4B,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAEzE;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAAkB;IAElB,IAAI,KAAK,KAAK,WAAW;QAAE,OAAO,2BAA2B,CAAC;IAC9D,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,sBAAsB,CAAC;IACpD,OAAO,wBAAwB,CAAC;AAClC,CAAC"}
|
|
@@ -30,14 +30,14 @@ export declare const SessionSchema: z.ZodObject<{
|
|
|
30
30
|
model?: string | undefined;
|
|
31
31
|
effort?: string | undefined;
|
|
32
32
|
}>;
|
|
33
|
-
status: z.ZodEnum<["planning", "in_review", "approved", "aborted"]>;
|
|
33
|
+
status: z.ZodEnum<["planning", "in_review", "approved", "blocked", "aborted"]>;
|
|
34
34
|
currentRound: z.ZodNumber;
|
|
35
35
|
startedAt: z.ZodString;
|
|
36
36
|
planHash: z.ZodString;
|
|
37
37
|
initialLineCount: z.ZodOptional<z.ZodNumber>;
|
|
38
38
|
}, "strip", z.ZodTypeAny, {
|
|
39
39
|
id: string;
|
|
40
|
-
status: "aborted" | "approved" | "planning" | "in_review";
|
|
40
|
+
status: "aborted" | "approved" | "blocked" | "planning" | "in_review";
|
|
41
41
|
planner: {
|
|
42
42
|
provider: string;
|
|
43
43
|
model?: string | undefined;
|
|
@@ -57,7 +57,7 @@ export declare const SessionSchema: z.ZodObject<{
|
|
|
57
57
|
initialLineCount?: number | undefined;
|
|
58
58
|
}, {
|
|
59
59
|
id: string;
|
|
60
|
-
status: "aborted" | "approved" | "planning" | "in_review";
|
|
60
|
+
status: "aborted" | "approved" | "blocked" | "planning" | "in_review";
|
|
61
61
|
planner: {
|
|
62
62
|
provider: string;
|
|
63
63
|
model?: string | undefined;
|
|
@@ -7,7 +7,7 @@ export const SessionSchema = z.object({
|
|
|
7
7
|
planPathAbsolute: z.string(),
|
|
8
8
|
planner: ProviderConfigSchema,
|
|
9
9
|
reviewer: ProviderConfigSchema,
|
|
10
|
-
status: z.enum(["planning", "in_review", "approved", "aborted"]),
|
|
10
|
+
status: z.enum(["planning", "in_review", "approved", "blocked", "aborted"]),
|
|
11
11
|
currentRound: z.number().int().min(0),
|
|
12
12
|
startedAt: z.string(),
|
|
13
13
|
planHash: z.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/schemas/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,OAAO,EAAE,oBAAoB;IAC7B,QAAQ,EAAE,oBAAoB;IAC9B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/schemas/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,OAAO,EAAE,oBAAoB;IAC7B,QAAQ,EAAE,oBAAoB;IAC9B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC3E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "planpong",
|
|
3
|
-
"version": "0.2
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Multi-model adversarial plan review — orchestrates AI agents to critique and refine implementation plans",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -43,10 +43,12 @@
|
|
|
43
43
|
"execa": "^9.5.2",
|
|
44
44
|
"ora": "^8.2.0",
|
|
45
45
|
"yaml": "^2.7.0",
|
|
46
|
-
"zod": "^3.24.2"
|
|
46
|
+
"zod": "^3.24.2",
|
|
47
|
+
"zod-to-json-schema": "^3.25.2"
|
|
47
48
|
},
|
|
48
49
|
"devDependencies": {
|
|
49
50
|
"@types/node": "^22.13.10",
|
|
51
|
+
"ajv": "^8.18.0",
|
|
50
52
|
"tsx": "^4.19.3",
|
|
51
53
|
"typescript": "^5.8.2",
|
|
52
54
|
"vitest": "^4.0.18"
|