hanoman 0.1.43 → 0.1.45
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/build-info.json +3 -3
- package/dist/cli.js +16 -6
- package/dist/server.js +346 -128
- package/docs/agent-integration.md +5 -4
- package/package.json +1 -1
- package/web/assets/{index-e01zHm_c.js → index-Bwx_Vz8-.js} +131 -130
- package/web/assets/{index-TRbs6vrh.css → index-ChXVk9Y2.css} +1 -1
- package/web/index.html +2 -2
package/dist/build-info.json
CHANGED
package/dist/cli.js
CHANGED
|
@@ -4129,7 +4129,7 @@ var init_enums = __esm({
|
|
|
4129
4129
|
"use strict";
|
|
4130
4130
|
init_zod();
|
|
4131
4131
|
zStage = external_exports.enum(["brainstorming", "objective", "spec-ready", "planned", "executing", "done"]);
|
|
4132
|
-
zSpecSource = external_exports.enum(["brief", "qa", "audit", "help", "goal"]);
|
|
4132
|
+
zSpecSource = external_exports.enum(["brief", "qa", "audit", "help", "goal", "no_effort"]);
|
|
4133
4133
|
zDocStatus = external_exports.enum(["ok", "drift", "broken"]);
|
|
4134
4134
|
zPriority = external_exports.enum(["tinggi", "sedang", "rendah"]);
|
|
4135
4135
|
zProjectKind = external_exports.enum(["from-scratch", "existing"]);
|
|
@@ -4144,7 +4144,7 @@ var init_enums = __esm({
|
|
|
4144
4144
|
|
|
4145
4145
|
// ../shared/src/spec-source.ts
|
|
4146
4146
|
function payloadShapeFor(source) {
|
|
4147
|
-
return source === "qa" ? "qa" : source
|
|
4147
|
+
return source === "qa" ? "qa" : GOAL_SHAPED_SOURCES.has(source) ? "goal" : "brief";
|
|
4148
4148
|
}
|
|
4149
4149
|
function shapeOfPayload(payload) {
|
|
4150
4150
|
const p = payload ?? {};
|
|
@@ -4153,10 +4153,12 @@ function shapeOfPayload(payload) {
|
|
|
4153
4153
|
function payloadMatchesSource(source, payload) {
|
|
4154
4154
|
return shapeOfPayload(payload) === payloadShapeFor(source);
|
|
4155
4155
|
}
|
|
4156
|
+
var GOAL_SHAPED_SOURCES;
|
|
4156
4157
|
var init_spec_source = __esm({
|
|
4157
4158
|
"../shared/src/spec-source.ts"() {
|
|
4158
4159
|
"use strict";
|
|
4159
4160
|
init_enums();
|
|
4161
|
+
GOAL_SHAPED_SOURCES = /* @__PURE__ */ new Set(["goal", "no_effort"]);
|
|
4160
4162
|
}
|
|
4161
4163
|
});
|
|
4162
4164
|
|
|
@@ -4450,6 +4452,10 @@ var init_entities = __esm({
|
|
|
4450
4452
|
expected: external_exports.string(),
|
|
4451
4453
|
actual: external_exports.string(),
|
|
4452
4454
|
env: external_exports.string(),
|
|
4455
|
+
// SPEC-826 · bentuk ketiga yang ikut punya batasan pengerjaan. `.default("")` bukan gaya:
|
|
4456
|
+
// payload qa yang SUDAH tersimpan tak punya field ini, dan `z.string()` polos membuat setiap
|
|
4457
|
+
// baris lama gagal validasi begitu ia lewat zSpec/zCreateSpec/zPatchSpec/zChangeSpecSource.
|
|
4458
|
+
constraints: external_exports.string().default(""),
|
|
4453
4459
|
fromAudit: external_exports.string().optional()
|
|
4454
4460
|
});
|
|
4455
4461
|
zGoalPayload = external_exports.object({
|
|
@@ -5288,7 +5294,7 @@ var init_dto = __esm({
|
|
|
5288
5294
|
capacity: external_exports.number()
|
|
5289
5295
|
}).default({ inFlight: 0, queued: 0, capacity: 1 })
|
|
5290
5296
|
});
|
|
5291
|
-
zFlow = external_exports.enum(["feature", "qa", "scaffold", "reverse", "prd", "audit", "breakdown", "goal"]);
|
|
5297
|
+
zFlow = external_exports.enum(["feature", "qa", "scaffold", "reverse", "prd", "audit", "breakdown", "goal", "no_effort"]);
|
|
5292
5298
|
zPrdBrief = external_exports.object({
|
|
5293
5299
|
title: external_exports.string().min(1),
|
|
5294
5300
|
context: external_exports.string(),
|
|
@@ -5650,6 +5656,9 @@ var init_api = __esm({
|
|
|
5650
5656
|
ideCompare: (id, from, to) => `${API}/projects/${id}/compare?from=${encodeURIComponent(from)}&to=${encodeURIComponent(to)}`,
|
|
5651
5657
|
ideCompareFile: (id, from, to, path) => `${API}/projects/${id}/compare/file?from=${encodeURIComponent(from)}&to=${encodeURIComponent(to)}&path=${encodeURIComponent(path)}`,
|
|
5652
5658
|
ideGit: (id) => `${API}/projects/${id}/git`,
|
|
5659
|
+
// ADR-0121 · operasi berkas Explorer: satu path untuk buat/rename/hapus, satu untuk unggah.
|
|
5660
|
+
ideEntry: (id, path) => `${API}/projects/${id}/entry${path ? `?path=${encodeURIComponent(path)}` : ""}`,
|
|
5661
|
+
ideUpload: (id) => `${API}/projects/${id}/upload`,
|
|
5653
5662
|
ideGitMerge: (id) => `${API}/projects/${id}/git/merge`,
|
|
5654
5663
|
// SPEC-229 · merge git graph isolasi
|
|
5655
5664
|
// SPEC-234 · status working tree (staged/unstaged) + diff satu file working tree
|
|
@@ -6545,12 +6554,13 @@ var init_mcp_schema = __esm({
|
|
|
6545
6554
|
expected: str("Yang seharusnya terjadi."),
|
|
6546
6555
|
actual: str("Yang sebenarnya terjadi. Dari sinilah `objective` backlog diturunkan server."),
|
|
6547
6556
|
env: str("Lingkungan tempat temuan muncul: versi, browser, OS, instance."),
|
|
6557
|
+
constraints: str("Batasan yang mengikat pengerjaan: yang tak boleh berubah, yang wajib dipertahankan. Boleh string kosong \u2014 SENGAJA tak wajib (SPEC-826)."),
|
|
6548
6558
|
fromAudit: str("Opsional. Id backlog audit asal (mis. `SPEC-371`).")
|
|
6549
6559
|
},
|
|
6550
6560
|
required: ["severity", "steps", "expected", "actual", "env"]
|
|
6551
6561
|
});
|
|
6552
6562
|
GOAL_PAYLOAD = obj({
|
|
6553
|
-
description: "Bentuk payload untuk source `goal`. Sesi goal mengejar satu tujuan tanpa fase perencanaan (ADR-0089).",
|
|
6563
|
+
description: "Bentuk payload untuk source `goal` dan `no_effort`. Sesi goal mengejar satu tujuan tanpa fase perencanaan (ADR-0089); sesi no_effort mengerjakan satu task remeh dalam SATU fase lalu berhenti (ADR-0123).",
|
|
6554
6564
|
properties: {
|
|
6555
6565
|
goal: str("Satu tujuan yang dikejar sesi. Dari sinilah `objective` backlog diturunkan server."),
|
|
6556
6566
|
done: str("Bukti berhenti yang dituntut. Kosong berarti goal itu sendiri buktinya."),
|
|
@@ -6560,12 +6570,12 @@ var init_mcp_schema = __esm({
|
|
|
6560
6570
|
required: ["goal", "done", "constraints", "priority"]
|
|
6561
6571
|
});
|
|
6562
6572
|
SPEC_PAYLOAD_ONEOF = {
|
|
6563
|
-
description: "Isi backlog. BENTUKNYA DITENTUKAN `source`: `qa` \u2192 {severity, steps, expected, actual, env}; `goal` \u2192 {goal, done, constraints, priority}; `brief`/`audit`/`help` \u2192 {context, outcome, constraints, priority}.
|
|
6573
|
+
description: "Isi backlog. BENTUKNYA DITENTUKAN `source`: `qa` \u2192 {severity, steps, expected, actual, env, constraints}; `goal`/`no_effort` \u2192 {goal, done, constraints, priority}; `brief`/`audit`/`help` \u2192 {context, outcome, constraints, priority}. `constraints` qa opsional (default string kosong); bentuk yang tak cocok ditolak sebelum dikirim.",
|
|
6564
6574
|
oneOf: [BRIEF_PAYLOAD, QA_PAYLOAD, GOAL_PAYLOAD]
|
|
6565
6575
|
};
|
|
6566
6576
|
SOURCE_PAYLOAD_ALLOF = [
|
|
6567
6577
|
{ if: { properties: { source: { const: "qa" } }, required: ["source"] }, then: { properties: { payload: QA_PAYLOAD } } },
|
|
6568
|
-
{ if: { properties: { source: {
|
|
6578
|
+
{ if: { properties: { source: { enum: ["goal", "no_effort"] } }, required: ["source"] }, then: { properties: { payload: GOAL_PAYLOAD } } },
|
|
6569
6579
|
{ if: { properties: { source: { enum: ["brief", "audit", "help"] } }, required: ["source"] }, then: { properties: { payload: BRIEF_PAYLOAD } } }
|
|
6570
6580
|
];
|
|
6571
6581
|
PAGE_PARAMS = {
|