mister-wolf 2.16.3 → 2.17.1
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 +24 -11
- package/README.ru.md +25 -14
- package/dist/adapters/cli/cli-entry.d.ts.map +1 -1
- package/dist/adapters/cli/cli-entry.js +25 -0
- package/dist/adapters/cli/cli-entry.js.map +1 -1
- package/dist/adapters/cli/commands/claim.d.ts +6 -0
- package/dist/adapters/cli/commands/claim.d.ts.map +1 -0
- package/dist/adapters/cli/commands/claim.js +65 -0
- package/dist/adapters/cli/commands/claim.js.map +1 -0
- package/dist/adapters/cli/commands/face.d.ts +3 -0
- package/dist/adapters/cli/commands/face.d.ts.map +1 -0
- package/dist/adapters/cli/commands/face.js +227 -0
- package/dist/adapters/cli/commands/face.js.map +1 -0
- package/dist/adapters/cli/commands/memory-add.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-add.js +1 -1
- package/dist/adapters/cli/commands/memory-add.js.map +1 -1
- package/dist/adapters/cli/commands/memory-doctor.d.ts +20 -0
- package/dist/adapters/cli/commands/memory-doctor.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-doctor.js +123 -7
- package/dist/adapters/cli/commands/memory-doctor.js.map +1 -1
- package/dist/adapters/cli/commands/memory-edit.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-edit.js +6 -52
- package/dist/adapters/cli/commands/memory-edit.js.map +1 -1
- package/dist/adapters/cli/commands/memory-init.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-init.js +37 -54
- package/dist/adapters/cli/commands/memory-init.js.map +1 -1
- package/dist/adapters/cli/commands/memory-list.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-list.js +1 -1
- package/dist/adapters/cli/commands/memory-list.js.map +1 -1
- package/dist/adapters/cli/commands/memory-scaffold.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-scaffold.js +2 -1
- package/dist/adapters/cli/commands/memory-scaffold.js.map +1 -1
- package/dist/adapters/cli/commands/memory-search.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-search.js +1 -1
- package/dist/adapters/cli/commands/memory-search.js.map +1 -1
- package/dist/adapters/cli/commands/memory-sync.js +1 -1
- package/dist/adapters/cli/commands/memory-sync.js.map +1 -1
- package/dist/adapters/cli/commands/propose.d.ts +3 -0
- package/dist/adapters/cli/commands/propose.d.ts.map +1 -0
- package/dist/adapters/cli/commands/propose.js +94 -0
- package/dist/adapters/cli/commands/propose.js.map +1 -0
- package/dist/adapters/cli/type-command-generator.d.ts.map +1 -1
- package/dist/adapters/cli/type-command-generator.js +2 -0
- package/dist/adapters/cli/type-command-generator.js.map +1 -1
- package/dist/adapters/fs/claim-registry.d.ts +85 -0
- package/dist/adapters/fs/claim-registry.d.ts.map +1 -0
- package/dist/adapters/fs/claim-registry.js +276 -0
- package/dist/adapters/fs/claim-registry.js.map +1 -0
- package/dist/adapters/fs/memory-root.d.ts +26 -1
- package/dist/adapters/fs/memory-root.d.ts.map +1 -1
- package/dist/adapters/fs/memory-root.js +88 -2
- package/dist/adapters/fs/memory-root.js.map +1 -1
- package/dist/app/use-cases/add-memory-object.d.ts +5 -0
- package/dist/app/use-cases/add-memory-object.d.ts.map +1 -1
- package/dist/app/use-cases/add-memory-object.js +24 -5
- package/dist/app/use-cases/add-memory-object.js.map +1 -1
- package/dist/app/use-cases/claim-artifact.d.ts +31 -0
- package/dist/app/use-cases/claim-artifact.d.ts.map +1 -0
- package/dist/app/use-cases/claim-artifact.js +38 -0
- package/dist/app/use-cases/claim-artifact.js.map +1 -0
- package/dist/app/use-cases/create-face-version.d.ts +101 -0
- package/dist/app/use-cases/create-face-version.d.ts.map +1 -0
- package/dist/app/use-cases/create-face-version.js +100 -0
- package/dist/app/use-cases/create-face-version.js.map +1 -0
- package/dist/app/use-cases/create-mutation-record.d.ts +55 -0
- package/dist/app/use-cases/create-mutation-record.d.ts.map +1 -0
- package/dist/app/use-cases/create-mutation-record.js +78 -0
- package/dist/app/use-cases/create-mutation-record.js.map +1 -0
- package/dist/app/use-cases/deliver-proposal.d.ts +26 -0
- package/dist/app/use-cases/deliver-proposal.d.ts.map +1 -0
- package/dist/app/use-cases/deliver-proposal.js +35 -0
- package/dist/app/use-cases/deliver-proposal.js.map +1 -0
- package/dist/app/use-cases/edit-memory-object.d.ts +26 -0
- package/dist/app/use-cases/edit-memory-object.d.ts.map +1 -0
- package/dist/app/use-cases/edit-memory-object.js +57 -0
- package/dist/app/use-cases/edit-memory-object.js.map +1 -0
- package/dist/app/use-cases/face-operation.d.ts +81 -0
- package/dist/app/use-cases/face-operation.d.ts.map +1 -0
- package/dist/app/use-cases/face-operation.js +503 -0
- package/dist/app/use-cases/face-operation.js.map +1 -0
- package/dist/app/use-cases/get-call-injections.d.ts +12 -1
- package/dist/app/use-cases/get-call-injections.d.ts.map +1 -1
- package/dist/app/use-cases/get-call-injections.js +73 -12
- package/dist/app/use-cases/get-call-injections.js.map +1 -1
- package/dist/app/use-cases/migrate-faces.d.ts +81 -0
- package/dist/app/use-cases/migrate-faces.d.ts.map +1 -0
- package/dist/app/use-cases/migrate-faces.js +267 -0
- package/dist/app/use-cases/migrate-faces.js.map +1 -0
- package/dist/app/use-cases/promote-memory.d.ts +14 -1
- package/dist/app/use-cases/promote-memory.d.ts.map +1 -1
- package/dist/app/use-cases/promote-memory.js +36 -5
- package/dist/app/use-cases/promote-memory.js.map +1 -1
- package/dist/app/use-cases/record-relation.d.ts.map +1 -1
- package/dist/app/use-cases/record-relation.js +6 -0
- package/dist/app/use-cases/record-relation.js.map +1 -1
- package/dist/app/use-cases/save-proposal.d.ts +49 -0
- package/dist/app/use-cases/save-proposal.d.ts.map +1 -0
- package/dist/app/use-cases/save-proposal.js +32 -0
- package/dist/app/use-cases/save-proposal.js.map +1 -0
- package/dist/app/use-cases/scaffold-agent.d.ts.map +1 -1
- package/dist/app/use-cases/scaffold-agent.js +20 -52
- package/dist/app/use-cases/scaffold-agent.js.map +1 -1
- package/dist/app/use-cases/scaffold-artifact.d.ts +5 -0
- package/dist/app/use-cases/scaffold-artifact.d.ts.map +1 -1
- package/dist/app/use-cases/scaffold-artifact.js +2 -0
- package/dist/app/use-cases/scaffold-artifact.js.map +1 -1
- package/dist/app/use-cases/seed-base-playbooks.d.ts +17 -96
- package/dist/app/use-cases/seed-base-playbooks.d.ts.map +1 -1
- package/dist/app/use-cases/seed-base-playbooks.js +77 -32
- package/dist/app/use-cases/seed-base-playbooks.js.map +1 -1
- package/dist/app/use-cases/supersede-memory-object.d.ts +3 -1
- package/dist/app/use-cases/supersede-memory-object.d.ts.map +1 -1
- package/dist/app/use-cases/supersede-memory-object.js +8 -1
- package/dist/app/use-cases/supersede-memory-object.js.map +1 -1
- package/dist/app/use-cases/transition-memory-object.d.ts.map +1 -1
- package/dist/app/use-cases/transition-memory-object.js +6 -0
- package/dist/app/use-cases/transition-memory-object.js.map +1 -1
- package/dist/domain/facet-colors.d.ts.map +1 -1
- package/dist/domain/facet-colors.js +1 -0
- package/dist/domain/facet-colors.js.map +1 -1
- package/dist/domain/memory-types.d.ts +36 -1
- package/dist/domain/memory-types.d.ts.map +1 -1
- package/dist/domain/memory-types.js +36 -2
- package/dist/domain/memory-types.js.map +1 -1
- package/dist/domain/schemas/memory-event-schema.d.ts +8 -0
- package/dist/domain/schemas/memory-event-schema.d.ts.map +1 -1
- package/dist/domain/schemas/memory-event-schema.js +42 -1
- package/dist/domain/schemas/memory-event-schema.js.map +1 -1
- package/dist/domain/schemas/relation-schema.d.ts +6 -2
- package/dist/domain/schemas/relation-schema.d.ts.map +1 -1
- package/dist/domain/schemas/relation-schema.js +8 -0
- package/dist/domain/schemas/relation-schema.js.map +1 -1
- package/dist/domain/schemas/session-checkpoint-schema.d.ts +1 -1
- package/dist/domain/type-schema-builder.d.ts +4 -2
- package/dist/domain/type-schema-builder.d.ts.map +1 -1
- package/dist/domain/type-schema-builder.js +32 -1
- package/dist/domain/type-schema-builder.js.map +1 -1
- package/package.json +1 -1
- package/templates/.wolf/router.log +1 -1
- package/templates/base/agents/steward.md +9 -6
- package/templates/base/playbooks/complaint-protocol.md +1 -1
- package/templates/base/playbooks/steward-nastavnik.md +36 -17
- package/templates/opencode/plugins/wolf-router.ts +60 -10
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import { buildTypeSchema } from '../../domain/type-schema-builder.js';
|
|
4
|
-
import { getDeclaration } from '../../domain/memory-types.js';
|
|
5
|
-
// wave13-a: playbook поглощён note+facet howto (карта §5.4 2.13); спец-поля
|
|
6
|
-
// (owner_skill/version/steps) живут в passthrough — как у article/blocker
|
|
7
|
-
export const PlaybookNoteSchema = buildTypeSchema(getDeclaration('note'), {
|
|
8
|
-
owner_skill: z.string(),
|
|
9
|
-
version: z.string().default('1'),
|
|
10
|
-
steps: z.array(z.string()).default([]),
|
|
11
|
-
});
|
|
1
|
+
import { createFaceVersion } from './create-face-version.js';
|
|
2
|
+
import { activeFace } from './face-operation.js';
|
|
12
3
|
function parseFrontmatter(raw) {
|
|
13
4
|
const m = raw.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);
|
|
14
5
|
if (!m)
|
|
@@ -21,34 +12,88 @@ function parseFrontmatter(raw) {
|
|
|
21
12
|
}
|
|
22
13
|
return { meta, body: m[2] };
|
|
23
14
|
}
|
|
24
|
-
/**
|
|
15
|
+
/** Активный legacy howto-head владельца (прецедент migrate-faces.ts: не
|
|
16
|
+
* superseded, свежий по updated_at); null — активной записи нет. */
|
|
17
|
+
async function activeLegacyHead(store, ownerSkill) {
|
|
18
|
+
const records = (await store.list({ type: 'note', facet: 'howto' })).filter((o) => o.owner_skill === ownerSkill);
|
|
19
|
+
const head = records
|
|
20
|
+
.filter((r) => r.status !== 'superseded')
|
|
21
|
+
.sort((a, b) => b.updated_at.localeCompare(a.updated_at))[0];
|
|
22
|
+
return head ? { id: head.id } : null;
|
|
23
|
+
}
|
|
24
|
+
/** Посев + шаблонное обновление live-лиц (§3.6): одна точка решения о записи
|
|
25
|
+
* для каждого шаблона base-set с owner_skill. */
|
|
25
26
|
export async function seedBasePlaybooks(deps) {
|
|
26
27
|
const outcomes = [];
|
|
27
|
-
|
|
28
|
+
const processedOwners = new Set();
|
|
29
|
+
// ponytail: без .sort() — порядок вставки Map функционально не важен
|
|
28
30
|
for (const [file, raw] of deps.files) {
|
|
29
31
|
const { meta, body } = parseFrontmatter(raw);
|
|
30
32
|
const ownerSkill = meta.owner_skill ?? '';
|
|
31
|
-
if (
|
|
32
|
-
outcomes.push({
|
|
33
|
+
if (processedOwners.has(ownerSkill)) {
|
|
34
|
+
outcomes.push({
|
|
35
|
+
file,
|
|
36
|
+
action: 'skipped',
|
|
37
|
+
reason: `owner_skill=${ownerSkill} already seeded from another template in this run`,
|
|
38
|
+
});
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
processedOwners.add(ownerSkill);
|
|
42
|
+
const active = await activeFace(deps.store, ownerSkill);
|
|
43
|
+
// лица нет: свежий посев, либо популяция 2.16.3 (legacy howto → поглощение)
|
|
44
|
+
if (active === null) {
|
|
45
|
+
const legacyHead = await activeLegacyHead(deps.store, ownerSkill);
|
|
46
|
+
await createFaceVersion(deps, {
|
|
47
|
+
command: 'seed',
|
|
48
|
+
ownerSkill,
|
|
49
|
+
reason: `base-set seed: ${file}`,
|
|
50
|
+
title: meta.title ?? file,
|
|
51
|
+
body,
|
|
52
|
+
tags: (meta.tags ?? '')
|
|
53
|
+
.split(',')
|
|
54
|
+
.map((t) => t.trim())
|
|
55
|
+
.filter(Boolean),
|
|
56
|
+
legacyHeadId: legacyHead?.id,
|
|
57
|
+
});
|
|
58
|
+
outcomes.push(legacyHead !== null
|
|
59
|
+
? {
|
|
60
|
+
file,
|
|
61
|
+
action: 'created',
|
|
62
|
+
reason: `seeded from template; superseded legacy howto ${legacyHead.id}`,
|
|
63
|
+
}
|
|
64
|
+
: { file, action: 'created' });
|
|
33
65
|
continue;
|
|
34
66
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
67
|
+
// лицо есть: идемпотентный skip либо решение о шаблонном обновлении
|
|
68
|
+
if (active.body === body) {
|
|
69
|
+
outcomes.push({ file, action: 'skipped', reason: `active face v${active.version} matches template` });
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if (active.initiator === 'seed' || active.initiator === 'migration') {
|
|
73
|
+
await createFaceVersion(deps, {
|
|
74
|
+
command: 'seed',
|
|
75
|
+
ownerSkill,
|
|
76
|
+
reason: `template update: ${file} (2.17.1)`,
|
|
77
|
+
title: meta.title ?? file,
|
|
78
|
+
body,
|
|
79
|
+
tags: (meta.tags ?? '')
|
|
80
|
+
.split(',')
|
|
81
|
+
.map((t) => t.trim())
|
|
82
|
+
.filter(Boolean),
|
|
83
|
+
});
|
|
84
|
+
outcomes.push({
|
|
85
|
+
file,
|
|
86
|
+
action: 'updated',
|
|
87
|
+
reason: `template update from v${active.version} (initiator ${active.initiator})`,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
outcomes.push({
|
|
92
|
+
file,
|
|
93
|
+
action: 'diverged',
|
|
94
|
+
reason: `diverged: face v${active.version} initiator=${active.initiator} — left untouched (steward zone, D4)`,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
52
97
|
}
|
|
53
98
|
return outcomes;
|
|
54
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed-base-playbooks.js","sourceRoot":"","sources":["../../../src/app/use-cases/seed-base-playbooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"seed-base-playbooks.js","sourceRoot":"","sources":["../../../src/app/use-cases/seed-base-playbooks.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAgCjD,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IACvC,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5C,IAAI,EAAE;YAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED;oEACoE;AACpE,KAAK,UAAU,gBAAgB,CAAC,KAAkB,EAAE,UAAkB;IACpE,MAAM,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CACzE,CAAC,CAAC,EAAE,EAAE,CAAE,CAA+B,CAAC,WAAW,KAAK,UAAU,CACnE,CAAC;IACF,MAAM,IAAI,GAAG,OAAO;SACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC;SACxC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED;iDACiD;AACjD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAc;IACpD,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,qEAAqE;IACrE,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACrC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QAC1C,IAAI,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI;gBACJ,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,eAAe,UAAU,mDAAmD;aACrF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAExD,4EAA4E;QAC5E,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAClE,MAAM,iBAAiB,CAAC,IAAI,EAAE;gBAC5B,OAAO,EAAE,MAAM;gBACf,UAAU;gBACV,MAAM,EAAE,kBAAkB,IAAI,EAAE;gBAChC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;gBACzB,IAAI;gBACJ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;qBACpB,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;qBACpB,MAAM,CAAC,OAAO,CAAC;gBAClB,YAAY,EAAE,UAAU,EAAE,EAAE;aAC7B,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CACX,UAAU,KAAK,IAAI;gBACjB,CAAC,CAAC;oBACE,IAAI;oBACJ,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,iDAAiD,UAAU,CAAC,EAAE,EAAE;iBACzE;gBACH,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAChC,CAAC;YACF,SAAS;QACX,CAAC;QAED,oEAAoE;QACpE,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,MAAM,CAAC,OAAO,mBAAmB,EAAE,CAAC,CAAC;YACtG,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;YACpE,MAAM,iBAAiB,CAAC,IAAI,EAAE;gBAC5B,OAAO,EAAE,MAAM;gBACf,UAAU;gBACV,MAAM,EAAE,oBAAoB,IAAI,WAAW;gBAC3C,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;gBACzB,IAAI;gBACJ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;qBACpB,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;qBACpB,MAAM,CAAC,OAAO,CAAC;aACnB,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI;gBACJ,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,yBAAyB,MAAM,CAAC,OAAO,eAAe,MAAM,CAAC,SAAS,GAAG;aAClF,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI;gBACJ,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,mBAAmB,MAAM,CAAC,OAAO,cAAc,MAAM,CAAC,SAAS,sCAAsC;aAC9G,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -11,5 +11,7 @@ export declare function supersedeMemoryObject(deps: {
|
|
|
11
11
|
idGen: IdGenerator;
|
|
12
12
|
index?: SearchIndex;
|
|
13
13
|
lock?: MemoryLock;
|
|
14
|
-
}, oldId: string, newId: string
|
|
14
|
+
}, oldId: string, newId: string, opts?: {
|
|
15
|
+
internalFacePath?: boolean;
|
|
16
|
+
}): Promise<void>;
|
|
15
17
|
//# sourceMappingURL=supersede-memory-object.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supersede-memory-object.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/supersede-memory-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAQ7D,wBAAsB,qBAAqB,CACzC,IAAI,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,EACrH,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"supersede-memory-object.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/supersede-memory-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAQ7D,wBAAsB,qBAAqB,CACzC,IAAI,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,EACrH,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GACpC,OAAO,CAAC,IAAI,CAAC,CAwDf"}
|
|
@@ -3,7 +3,7 @@ import { UserFacingError } from '../../domain/errors.js';
|
|
|
3
3
|
// ponytail: slug optional — legacy ids from cyrillic titles have empty slug
|
|
4
4
|
// (mem_YYYYMMDD__<hash>); hash is still mandatory, so 'mem_20260824__' stays invalid
|
|
5
5
|
const MEMORY_ID_RE = /^mem_\d{8}[a-z0-9_]*_[0-9a-f]{6}$/;
|
|
6
|
-
export async function supersedeMemoryObject(deps, oldId, newId) {
|
|
6
|
+
export async function supersedeMemoryObject(deps, oldId, newId, opts) {
|
|
7
7
|
const run = async () => {
|
|
8
8
|
if (oldId === newId) {
|
|
9
9
|
throw new UserFacingError(`Cannot supersede: old and new ids are the same: ${oldId}`);
|
|
@@ -20,6 +20,13 @@ export async function supersedeMemoryObject(deps, oldId, newId) {
|
|
|
20
20
|
const oldObject = await deps.store.get(oldId);
|
|
21
21
|
if (!oldObject)
|
|
22
22
|
throw new UserFacingError(`Memory object not found: ${oldId}`);
|
|
23
|
+
// 2.17.1 REQ-04 (R05, design §7): generic supersede на face запрещён —
|
|
24
|
+
// лицо гасится только шагом face-операции §3.3; внутренний вызов
|
|
25
|
+
// (supersede_prev/supersede_legacy) помечен internalFacePath — прецедент
|
|
26
|
+
// add-memory-object.ts. Legacy-head миграции есть note — идёт мимо guard.
|
|
27
|
+
if (oldObject.type === 'face' && opts?.internalFacePath !== true) {
|
|
28
|
+
throw new UserFacingError('type "face" cannot be superseded generically: faces are versioned, use "wolf face" commands (new | restore | breakglass | recover)');
|
|
29
|
+
}
|
|
23
30
|
const newObject = await deps.store.get(newId);
|
|
24
31
|
if (!newObject)
|
|
25
32
|
throw new UserFacingError(`Replacement memory object not found: ${newId}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supersede-memory-object.js","sourceRoot":"","sources":["../../../src/app/use-cases/supersede-memory-object.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,4EAA4E;AAC5E,qFAAqF;AACrF,MAAM,YAAY,GAAG,mCAAmC,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAqH,EACrH,KAAa,EACb,KAAa;
|
|
1
|
+
{"version":3,"file":"supersede-memory-object.js","sourceRoot":"","sources":["../../../src/app/use-cases/supersede-memory-object.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,4EAA4E;AAC5E,qFAAqF;AACrF,MAAM,YAAY,GAAG,mCAAmC,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAqH,EACrH,KAAa,EACb,KAAa,EACb,IAAqC;IAErC,MAAM,GAAG,GAAG,KAAK,IAAmB,EAAE;QACpC,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,MAAM,IAAI,eAAe,CAAC,mDAAmD,KAAK,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI;YACxB,CAAC,KAAK,EAAE,KAAK,CAAC;YACd,CAAC,aAAa,EAAE,KAAK,CAAC;SACd,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,eAAe,CAAC,wBAAwB,KAAK,OAAO,EAAE,yCAAyC,CAAC,CAAC;YAC7G,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,eAAe,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;QAC/E,uEAAuE;QACvE,iEAAiE;QACjE,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,EAAE,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACjE,MAAM,IAAI,eAAe,CACvB,oIAAoI,CACrI,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,eAAe,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC;QAC3F,yEAAyE;QACzE,6EAA6E;QAC7E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7C,IAAI,MAAM,GAAkB,SAAS,CAAC,aAAa,IAAI,IAAI,CAAC;QAC5D,OAAO,MAAM,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,MAAM,IAAI,eAAe,CAAC,mCAAmC,KAAK,OAAO,KAAK,OAAO,KAAK,EAAE,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,MAAM,CAAC,8CAA8C;YAC3E,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,EAAE,aAAa,IAAI,IAAI,CAAC;QACtC,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/F,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YACpB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC;YACnC,IAAI,EAAE,mBAAmB;YACzB,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE;YAC5B,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;SAC1C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC/F,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transition-memory-object.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/transition-memory-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAkB,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAOxG,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE;IACJ,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACjD,EACD,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,YAAY,EACvB,KAAK,GAAE,MAAsB,GAC5B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"transition-memory-object.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/transition-memory-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAkB,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAOxG,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE;IACJ,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACjD,EACD,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,YAAY,EACvB,KAAK,GAAE,MAAsB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA2Cf"}
|
|
@@ -8,6 +8,12 @@ export async function transitionMemoryObject(deps, id, newStatus, actor = 'syste
|
|
|
8
8
|
const existing = await deps.store.get(id);
|
|
9
9
|
if (!existing)
|
|
10
10
|
throw new UserFacingError(`Memory object not found: ${id}`);
|
|
11
|
+
// 2.17.1 REQ-04 (R05, design §7): generic transition на face запрещён —
|
|
12
|
+
// лицо меняется только версионирующим путём (wolf face …/recover); guard
|
|
13
|
+
// в use-case (не только CLI): сюда же приходит MCP transition и archive.
|
|
14
|
+
if (existing.type === 'face') {
|
|
15
|
+
throw new UserFacingError('type "face" cannot be transitioned generically: faces are versioned, use "wolf face" commands (new | restore | breakglass | recover)');
|
|
16
|
+
}
|
|
11
17
|
const decl = getDeclaration(existing.type, deps.declarations);
|
|
12
18
|
if (!decl.lifecycle.includes(newStatus)) {
|
|
13
19
|
throw new UserFacingError(`Status "${newStatus}" is not in lifecycle of type "${existing.type}" (allowed: ${decl.lifecycle.join(', ')})`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transition-memory-object.js","sourceRoot":"","sources":["../../../src/app/use-cases/transition-memory-object.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgB,cAAc,EAA8B,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAEpG,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAQC,EACD,EAAU,EACV,SAAuB,EACvB,QAAgB,aAAa;IAE7B,MAAM,GAAG,GAAG,KAAK,IAAmB,EAAE;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,eAAe,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"transition-memory-object.js","sourceRoot":"","sources":["../../../src/app/use-cases/transition-memory-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facet-colors.d.ts","sourceRoot":"","sources":["../../src/domain/facet-colors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"facet-colors.d.ts","sourceRoot":"","sources":["../../src/domain/facet-colors.ts"],"names":[],"mappings":"AAkBA,yFAAyF;AACzF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE1D;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAGtE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAG3G"}
|
|
@@ -12,6 +12,7 @@ const FACET_COLORS = {
|
|
|
12
12
|
history: '\x1b[35m', // magenta
|
|
13
13
|
legacy: '\x1b[2m', // gray/dim
|
|
14
14
|
constraint: '\x1b[36m', // cyan
|
|
15
|
+
proposal: '\x1b[37m', // white (2.17: сигнал-фасет предложения)
|
|
15
16
|
};
|
|
16
17
|
/** ANSI-код фасета или null для неизвестного значения (в т.ч. кастомного из конфига). */
|
|
17
18
|
export function colorForFacet(facet) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facet-colors.js","sourceRoot":"","sources":["../../src/domain/facet-colors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,KAAK,GAAG,SAAS,CAAC;AAExB,MAAM,YAAY,GAAqC;IACrD,KAAK,EAAE,UAAU,EAAE,QAAQ;IAC3B,OAAO,EAAE,UAAU,EAAE,MAAM;IAC3B,OAAO,EAAE,UAAU,EAAE,OAAO;IAC5B,MAAM,EAAE,UAAU,EAAE,SAAS;IAC7B,OAAO,EAAE,UAAU,EAAE,UAAU;IAC/B,MAAM,EAAE,SAAS,EAAE,WAAW;IAC9B,UAAU,EAAE,UAAU,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"facet-colors.js","sourceRoot":"","sources":["../../src/domain/facet-colors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,KAAK,GAAG,SAAS,CAAC;AAExB,MAAM,YAAY,GAAqC;IACrD,KAAK,EAAE,UAAU,EAAE,QAAQ;IAC3B,OAAO,EAAE,UAAU,EAAE,MAAM;IAC3B,OAAO,EAAE,UAAU,EAAE,OAAO;IAC5B,MAAM,EAAE,UAAU,EAAE,SAAS;IAC7B,OAAO,EAAE,UAAU,EAAE,UAAU;IAC/B,MAAM,EAAE,SAAS,EAAE,WAAW;IAC9B,UAAU,EAAE,UAAU,EAAE,OAAO;IAC/B,QAAQ,EAAE,UAAU,EAAE,yCAAyC;CAChE,CAAC;AAEF,yFAAyF;AACzF,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,OAAgB;IAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAA2B,EAAE,GAAuC;IAChG,MAAM,IAAI,GAAG,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;IACpE,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -49,6 +49,7 @@ export interface MemoryTypeDeclaration {
|
|
|
49
49
|
deprecated?: boolean;
|
|
50
50
|
}
|
|
51
51
|
export declare const DEFAULT_CHARACTER_FACETS: readonly string[];
|
|
52
|
+
export declare const SIGNAL_FACETS: readonly string[];
|
|
52
53
|
declare const CORE_TAXONOMY_DECLS: readonly [{
|
|
53
54
|
readonly name: "rule";
|
|
54
55
|
readonly lifecycle: readonly ["active", "superseded", "obsolete", "proposed", "accepted", "rejected", "archived"];
|
|
@@ -234,9 +235,43 @@ declare const CORE_TAXONOMY_DECLS: readonly [{
|
|
|
234
235
|
readonly values: readonly string[];
|
|
235
236
|
};
|
|
236
237
|
};
|
|
238
|
+
}, {
|
|
239
|
+
readonly name: "face";
|
|
240
|
+
readonly lifecycle: readonly ["active", "superseded", "archived", "candidate"];
|
|
241
|
+
readonly subdirThread: null;
|
|
242
|
+
readonly subdirShared: "faces";
|
|
243
|
+
readonly fields: {
|
|
244
|
+
readonly owner_skill: {
|
|
245
|
+
readonly kind: "string";
|
|
246
|
+
readonly required: true;
|
|
247
|
+
readonly min: 1;
|
|
248
|
+
};
|
|
249
|
+
readonly version: {
|
|
250
|
+
readonly kind: "string";
|
|
251
|
+
readonly required: true;
|
|
252
|
+
readonly min: 1;
|
|
253
|
+
};
|
|
254
|
+
readonly based_on: {
|
|
255
|
+
readonly kind: "string";
|
|
256
|
+
readonly optional: true;
|
|
257
|
+
};
|
|
258
|
+
readonly reason: {
|
|
259
|
+
readonly kind: "string";
|
|
260
|
+
readonly required: true;
|
|
261
|
+
readonly min: 1;
|
|
262
|
+
};
|
|
263
|
+
readonly initiator: {
|
|
264
|
+
readonly kind: "enum";
|
|
265
|
+
readonly values: readonly ["steward", "owner", "breakglass", "migration", "seed"];
|
|
266
|
+
};
|
|
267
|
+
readonly op_id: {
|
|
268
|
+
readonly kind: "string";
|
|
269
|
+
readonly optional: true;
|
|
270
|
+
};
|
|
271
|
+
};
|
|
237
272
|
}];
|
|
238
273
|
export type MemoryType = (typeof CORE_TAXONOMY_DECLS)[number]['name'];
|
|
239
|
-
export declare const MEMORY_TYPES: ("rule" | "lesson" | "decision" | "thread" | "complaint" | "tool" | "note")[];
|
|
274
|
+
export declare const MEMORY_TYPES: ("rule" | "lesson" | "decision" | "thread" | "complaint" | "tool" | "note" | "face")[];
|
|
240
275
|
/**
|
|
241
276
|
* Волна 2.13 §5.4: карта миграции старых типов (alias-чтение P211 + migrate P213).
|
|
242
277
|
* Identity-строки (rule→rule и т.п.) и task-brief (project-тип dogfood) НЕ входят —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-types.d.ts","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,MAAM,GACN,UAAU,GACV,OAAO,GACP,aAAa,GACb,YAAY,GACZ,UAAU,GACV,QAAQ,GACR,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,YAAY,GAEZ,SAAS,GACT,gBAAgB,CAAC;AACrB,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,iBAAiB,CAAC;AACnF,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhE,mFAAmF;AACnF,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,sFAAsF;IACtF,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;IACnC,qEAAqE;IACrE,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,oEAAoE;IACpE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,8DAA8D;IAC9D,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,wEAAwE;IACxE,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"memory-types.d.ts","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ const FULL = [
|
|
|
17
17
|
];
|
|
18
18
|
// Волна 2.13 §5.3: закрытый словарь фасетов «характер записи» для типа note.
|
|
19
19
|
// Диапазон длины словаря 7–10 (config-file); кастомизация — facets.character в config.yaml.
|
|
20
|
+
// Волна 2.17 (ADR-3, REQ-08): +proposal (8/10) — сигнал-фасет предложения
|
|
21
|
+
// входит в character-словарь note; прочие core-типы — SIGNAL_FACETS ниже.
|
|
20
22
|
export const DEFAULT_CHARACTER_FACETS = [
|
|
21
23
|
'howto',
|
|
22
24
|
'pitfall',
|
|
@@ -25,11 +27,17 @@ export const DEFAULT_CHARACTER_FACETS = [
|
|
|
25
27
|
'history',
|
|
26
28
|
'legacy',
|
|
27
29
|
'constraint',
|
|
30
|
+
'proposal',
|
|
28
31
|
];
|
|
32
|
+
// Волна 2.17 ADR-3 (REQ-08): сигнал-словарь facet для не-note core-типов —
|
|
33
|
+
// единственное значение proposal, отдельно от character-словаря note (новый
|
|
34
|
+
// тег-словарь не вводится). Инжектится в per-type схемы type-schema-builder'ом,
|
|
35
|
+
// а не декларацией fields — чтобы не попадать в генерацию CLI-флагов.
|
|
36
|
+
export const SIGNAL_FACETS = ['proposal'];
|
|
29
37
|
// Единственный источник истины: типы (MemoryType, MEMORY_TYPES) выводятся
|
|
30
38
|
// отсюда — новый core-тип добавляется ТОЛЬКО в этот массив.
|
|
31
|
-
// Волна 2.13 §5.1: 7 выживших типов (дословно Т1);
|
|
32
|
-
// DEPRECATED_TYPE_ALIASES ниже (alias-чтение P211) и migrate taxonomy (P213).
|
|
39
|
+
// Волна 2.13 §5.1: 7 выживших типов (дословно Т1); волна 2.17: +face (REQ-01).
|
|
40
|
+
// Старые типы — карта DEPRECATED_TYPE_ALIASES ниже (alias-чтение P211) и migrate taxonomy (P213).
|
|
33
41
|
const CORE_TAXONOMY_DECLS = [
|
|
34
42
|
{
|
|
35
43
|
name: 'rule',
|
|
@@ -134,6 +142,32 @@ const CORE_TAXONOMY_DECLS = [
|
|
|
134
142
|
facet: { kind: 'enum', values: DEFAULT_CHARACTER_FACETS },
|
|
135
143
|
},
|
|
136
144
|
},
|
|
145
|
+
{
|
|
146
|
+
// Волна 2.17 REQ-01 (design §Контракты «Тип face»): лицо агента —
|
|
147
|
+
// канонический playbook как самостоятельный core-тип; история = цепочка
|
|
148
|
+
// записей-версий через существующий supersede (ADR-1). Создание — только
|
|
149
|
+
// версионирующим путём (guard в use-case, T-02/T-07).
|
|
150
|
+
name: 'face',
|
|
151
|
+
// T18: только существующие статусы; 2.17.1 REQ-03 (ADR-3): +candidate —
|
|
152
|
+
// staging-статус до activation (точка commit операции, design §3.3)
|
|
153
|
+
lifecycle: ['active', 'superseded', 'archived', 'candidate'],
|
|
154
|
+
subdirThread: null,
|
|
155
|
+
subdirShared: 'faces',
|
|
156
|
+
fields: {
|
|
157
|
+
owner_skill: { kind: 'string', required: true, min: 1 },
|
|
158
|
+
// '1','2',… — номер версии назначает версионирующая команда (T-02)
|
|
159
|
+
version: { kind: 'string', required: true, min: 1 },
|
|
160
|
+
// id версии-основы; отсутствует у первой версии
|
|
161
|
+
based_on: { kind: 'string', optional: true },
|
|
162
|
+
// REQ-04 AC2: причина обязательна
|
|
163
|
+
reason: { kind: 'string', required: true, min: 1 },
|
|
164
|
+
// ADR-6: seed — посев первых версий (wolf init)
|
|
165
|
+
initiator: { kind: 'enum', values: ['steward', 'owner', 'breakglass', 'migration', 'seed'] },
|
|
166
|
+
// 2.17.1 REQ-03 (design §3.3): привязка объект↔операция независимо от
|
|
167
|
+
// журнала — правило усыновления candidate по совпадающему op_id
|
|
168
|
+
op_id: { kind: 'string', optional: true },
|
|
169
|
+
},
|
|
170
|
+
},
|
|
137
171
|
];
|
|
138
172
|
export const MEMORY_TYPES = CORE_TAXONOMY_DECLS.map((d) => d.name);
|
|
139
173
|
export const DEPRECATED_TYPE_ALIASES = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-types.js","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAuD9C,MAAM,IAAI,GAA4B;IACpC,QAAQ;IACR,MAAM;IACN,UAAU;IACV,OAAO;IACP,aAAa;IACb,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;CACX,CAAC;AAEF,6EAA6E;AAC7E,4FAA4F;AAC5F,MAAM,CAAC,MAAM,wBAAwB,GAAsB;IACzD,OAAO;IACP,SAAS;IACT,SAAS;IACT,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,YAAY;
|
|
1
|
+
{"version":3,"file":"memory-types.js","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAuD9C,MAAM,IAAI,GAA4B;IACpC,QAAQ;IACR,MAAM;IACN,UAAU;IACV,OAAO;IACP,aAAa;IACb,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;CACX,CAAC;AAEF,6EAA6E;AAC7E,4FAA4F;AAC5F,0EAA0E;AAC1E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,wBAAwB,GAAsB;IACzD,OAAO;IACP,SAAS;IACT,SAAS;IACT,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,YAAY;IACZ,UAAU;CACX,CAAC;AAEF,2EAA2E;AAC3E,4EAA4E;AAC5E,gFAAgF;AAChF,sEAAsE;AACtE,MAAM,CAAC,MAAM,aAAa,GAAsB,CAAC,UAAU,CAAC,CAAC;AAE7D,0EAA0E;AAC1E,4DAA4D;AAC5D,+EAA+E;AAC/E,kGAAkG;AAClG,MAAM,mBAAmB,GAAG;IAC1B;QACE,IAAI,EAAE,MAAM;QACZ,oEAAoE;QACpE,qFAAqF;QACrF,SAAS,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;QAC/F,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,OAAO;QACrB,MAAM,EAAE;YACN,yEAAyE;YACzE,6DAA6D;YAC7D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YACzC,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;YAC7C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;YACxC,gBAAgB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;SACpD;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,SAAS;QACvB,YAAY,EAAE,SAAS;QACvB,MAAM,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE;KAChE;IACD;QACE,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC;QAC3D,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,WAAW;QACzB,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;KACvD;IACD;QACE,8EAA8E;QAC9E,8DAA8D;QAC9D,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC;QAC7F,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE;YACN,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;YAChD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;YAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;SAC9C;KACF;IACD;QACE,sEAAsE;QACtE,yEAAyE;QACzE,gFAAgF;QAChF,4DAA4D;QAC5D,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;QACvD,aAAa,EAAE,MAAM;QACrB,YAAY,EAAE,OAAO;QACrB,YAAY,EAAE,YAAY;QAC1B,MAAM,EAAE;YACN,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;YACjD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;YAChD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;YACpD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;YACpD,qEAAqE;YACrE,iDAAiD;YACjD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3E,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC1C,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC9C,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;YAC1C,cAAc,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;SAC5C;KACF;IACD;QACE,uEAAuE;QACvE,6EAA6E;QAC7E,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC;QAC5D,aAAa,EAAE,WAAW;QAC1B,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,OAAO;QACrB,MAAM,EAAE;YACN,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;YAChD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;YACvD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;YACpD,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClD,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnD,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YACxD,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;YACxC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YAChD,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YACtD,+EAA+E;YAC/E,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC/C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3C,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC/C;KACF;IACD;QACE,0EAA0E;QAC1E,wEAAwE;QACxE,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,OAAO;QACrB,YAAY,EAAE,OAAO;QACrB,MAAM,EAAE;YACN,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,EAAE;SAC1D;KACF;IACD;QACE,kEAAkE;QAClE,wEAAwE;QACxE,yEAAyE;QACzE,sDAAsD;QACtD,IAAI,EAAE,MAAM;QACZ,wEAAwE;QACxE,oEAAoE;QACpE,SAAS,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC;QAC5D,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,OAAO;QACrB,MAAM,EAAE;YACN,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;YACvD,mEAAmE;YACnE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;YACnD,gDAAgD;YAChD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC5C,kCAAkC;YAClC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;YAClD,gDAAgD;YAChD,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE;YAC5F,sEAAsE;YACtE,gEAAgE;YAChE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC1C;KACF;CACO,CAAC;AAIX,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAgBnE,MAAM,CAAC,MAAM,uBAAuB,GAA4C;IAC9E,aAAa,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;IAC3E,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE;IACjG,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE;IAClG,eAAe,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE;IACnG,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;IAClG,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE;IAC3F,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE;IAC3F,iBAAiB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE;IACrG,oBAAoB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE;IACxG,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE;IACvF,kBAAkB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE;IACtG,iBAAiB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE;IACrG,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE;IAC7F,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE;IACnG,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE;IACzG,iBAAiB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE;IAC5G,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE;IAChG,kBAAkB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE;IACxG,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE;IAC3F,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE;CAChG,CAAC;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,aAAa,GAAqC,mBAAmB,CAAC;AAEnF,4FAA4F;AAC5F,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,KAAwC;IACnF,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC/F,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,8EAA8E;IAC9E,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,eAAe,CACvB,SAAS,IAAI,+BAA+B,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5G,CAAC;IACJ,CAAC;IACD,0EAA0E;IAC1E,qEAAqE;IACrE,MAAM,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpG,MAAM,IAAI,eAAe,CAAC,wBAAwB,IAAI,mBAAmB,KAAK,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAgB,EAAE,KAA0B;IAC1E,MAAM,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;AAC9D,CAAC"}
|
|
@@ -2,6 +2,14 @@ import { z } from 'zod';
|
|
|
2
2
|
export declare const MemoryEventSchema: z.ZodObject<{
|
|
3
3
|
id: z.ZodString;
|
|
4
4
|
type: z.ZodEnum<{
|
|
5
|
+
"memory.face.versioned": "memory.face.versioned";
|
|
6
|
+
"memory.face.breakglass": "memory.face.breakglass";
|
|
7
|
+
"memory.face.denied": "memory.face.denied";
|
|
8
|
+
"memory.proposal.delivered": "memory.proposal.delivered";
|
|
9
|
+
"memory.face.op_started": "memory.face.op_started";
|
|
10
|
+
"memory.face.op_step": "memory.face.op_step";
|
|
11
|
+
"memory.face.op_committed": "memory.face.op_committed";
|
|
12
|
+
"memory.face.op_aborted": "memory.face.op_aborted";
|
|
5
13
|
"memory.added": "memory.added";
|
|
6
14
|
"memory.edited": "memory.edited";
|
|
7
15
|
"memory.updated": "memory.updated";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-event-schema.d.ts","sourceRoot":"","sources":["../../../src/domain/schemas/memory-event-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-event-schema.d.ts","sourceRoot":"","sources":["../../../src/domain/schemas/memory-event-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;iBAyC1B,CAAC;AAEL,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
|
|
2
|
+
// Волна 2.17 (design §События журнала): обязательные ключи payload новых
|
|
3
|
+
// face/proposal-событий. breakglass зеркалит versioned (также создаёт версию);
|
|
4
|
+
// from может быть null (первая версия) — проверяется наличие ключа, не тип.
|
|
5
|
+
const EVENT_PAYLOAD_KEYS = {
|
|
6
|
+
'memory.face.versioned': ['owner_skill', 'from', 'new', 'initiator', 'reason'],
|
|
7
|
+
'memory.face.breakglass': ['owner_skill', 'from', 'new', 'initiator', 'reason'],
|
|
8
|
+
'memory.face.denied': ['owner_skill', 'actor', 'command'],
|
|
9
|
+
'memory.proposal.delivered': ['id', 'addressee'],
|
|
10
|
+
// 2.17.1 REQ-03 (R04, design §3.3): журнал операции лица. op_started несёт
|
|
11
|
+
// полный план шагов и полный набор аргументов (resume детерминирован из него);
|
|
12
|
+
// op_step detail (id созданных объектов) — необязателен; op_aborted — by+reason.
|
|
13
|
+
'memory.face.op_started': ['opId', 'command', 'owner_skill', 'plan', 'input'],
|
|
14
|
+
'memory.face.op_step': ['opId', 'step'],
|
|
15
|
+
'memory.face.op_committed': ['opId'],
|
|
16
|
+
'memory.face.op_aborted': ['opId', 'by', 'reason'],
|
|
17
|
+
};
|
|
18
|
+
export const MemoryEventSchema = z
|
|
19
|
+
.object({
|
|
3
20
|
id: z.string().min(1),
|
|
4
21
|
type: z.enum([
|
|
5
22
|
'memory.added',
|
|
@@ -12,9 +29,33 @@ export const MemoryEventSchema = z.object({
|
|
|
12
29
|
'memory.overwritten',
|
|
13
30
|
'memory.aggregated',
|
|
14
31
|
'memory.scope_promoted',
|
|
32
|
+
// волна 2.17: face-операции и доставка предложений
|
|
33
|
+
'memory.face.versioned',
|
|
34
|
+
'memory.face.breakglass',
|
|
35
|
+
'memory.face.denied',
|
|
36
|
+
'memory.proposal.delivered',
|
|
37
|
+
// 2.17.1 REQ-03 (R04): журналируемая цепочка шагов мутации лица (design §3.3)
|
|
38
|
+
'memory.face.op_started',
|
|
39
|
+
'memory.face.op_step',
|
|
40
|
+
'memory.face.op_committed',
|
|
41
|
+
'memory.face.op_aborted',
|
|
15
42
|
]),
|
|
16
43
|
timestamp: z.string().datetime(),
|
|
17
44
|
actor: z.string().min(1),
|
|
18
45
|
payload: z.record(z.string(), z.unknown()).default({}),
|
|
46
|
+
})
|
|
47
|
+
.superRefine((ev, ctx) => {
|
|
48
|
+
const required = EVENT_PAYLOAD_KEYS[ev.type];
|
|
49
|
+
if (!required)
|
|
50
|
+
return;
|
|
51
|
+
for (const key of required) {
|
|
52
|
+
if (ev.payload[key] === undefined) {
|
|
53
|
+
ctx.addIssue({
|
|
54
|
+
code: z.ZodIssueCode.custom,
|
|
55
|
+
path: ['payload', key],
|
|
56
|
+
message: `event "${ev.type}" requires payload key "${key}"`,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
19
60
|
});
|
|
20
61
|
//# sourceMappingURL=memory-event-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-event-schema.js","sourceRoot":"","sources":["../../../src/domain/schemas/memory-event-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"memory-event-schema.js","sourceRoot":"","sources":["../../../src/domain/schemas/memory-event-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,yEAAyE;AACzE,+EAA+E;AAC/E,4EAA4E;AAC5E,MAAM,kBAAkB,GAAgD;IACtE,uBAAuB,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC;IAC9E,wBAAwB,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC;IAC/E,oBAAoB,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC;IACzD,2BAA2B,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC;IAChD,2EAA2E;IAC3E,+EAA+E;IAC/E,iFAAiF;IACjF,wBAAwB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC;IAC7E,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IACvC,0BAA0B,EAAE,CAAC,MAAM,CAAC;IACpC,wBAAwB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;CACnD,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACX,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,qBAAqB;QACrB,mBAAmB;QACnB,iBAAiB;QACjB,qBAAqB;QACrB,oBAAoB;QACpB,mBAAmB;QACnB,uBAAuB;QACvB,mDAAmD;QACnD,uBAAuB;QACvB,wBAAwB;QACxB,oBAAoB;QACpB,2BAA2B;QAC3B,8EAA8E;QAC9E,wBAAwB;QACxB,qBAAqB;QACrB,0BAA0B;QAC1B,wBAAwB;KACzB,CAAC;IACF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACvD,CAAC;KACD,WAAW,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE;IACvB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAClC,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,IAAI,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC;gBACtB,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,2BAA2B,GAAG,GAAG;aAC5D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const RELATION_PREDICATES: readonly ["answers", "answered_by", "supports", "supported_by", "based_on", "basis_for", "updates", "updated_by", "supersedes", "superseded_by", "blocks", "blocked_by", "resolves", "resolved_by", "related_to", "produced_by", "owner_skill", "skill_of", "complain", "complained_by", "outcome", "outcome_of", "aggregates", "aggregated_in"];
|
|
2
|
+
export declare const RELATION_PREDICATES: readonly ["answers", "answered_by", "supports", "supported_by", "based_on", "basis_for", "updates", "updated_by", "supersedes", "superseded_by", "blocks", "blocked_by", "resolves", "resolved_by", "related_to", "produced_by", "owner_skill", "skill_of", "complain", "complained_by", "outcome", "outcome_of", "aggregates", "aggregated_in", "mutates", "mutated_by", "proposes", "proposed_by"];
|
|
3
3
|
export declare const RelationSchema: z.ZodObject<{
|
|
4
4
|
id: z.ZodString;
|
|
5
5
|
subject: z.ZodString;
|
|
6
6
|
predicate: z.ZodEnum<{
|
|
7
7
|
owner_skill: "owner_skill";
|
|
8
|
+
based_on: "based_on";
|
|
8
9
|
superseded_by: "superseded_by";
|
|
9
10
|
answers: "answers";
|
|
10
11
|
answered_by: "answered_by";
|
|
11
12
|
supports: "supports";
|
|
12
13
|
supported_by: "supported_by";
|
|
13
|
-
based_on: "based_on";
|
|
14
14
|
basis_for: "basis_for";
|
|
15
15
|
updates: "updates";
|
|
16
16
|
updated_by: "updated_by";
|
|
@@ -28,6 +28,10 @@ export declare const RelationSchema: z.ZodObject<{
|
|
|
28
28
|
outcome_of: "outcome_of";
|
|
29
29
|
aggregates: "aggregates";
|
|
30
30
|
aggregated_in: "aggregated_in";
|
|
31
|
+
mutates: "mutates";
|
|
32
|
+
mutated_by: "mutated_by";
|
|
33
|
+
proposes: "proposes";
|
|
34
|
+
proposed_by: "proposed_by";
|
|
31
35
|
}>;
|
|
32
36
|
object: z.ZodString;
|
|
33
37
|
created_at: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-schema.d.ts","sourceRoot":"","sources":["../../../src/domain/schemas/relation-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"relation-schema.d.ts","sourceRoot":"","sources":["../../../src/domain/schemas/relation-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB,sYAqCtB,CAAC;AAEX,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAYzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -28,6 +28,14 @@ export const RELATION_PREDICATES = [
|
|
|
28
28
|
// инверсия — aggregated_in от исходника к агрегату)
|
|
29
29
|
'aggregates',
|
|
30
30
|
'aggregated_in',
|
|
31
|
+
// 2.17 REQ-06 (design §«Запись мутации Стюарда»): G17-запись -mutates->
|
|
32
|
+
// версия лица (пара, прецедент complain/complained_by)
|
|
33
|
+
'mutates',
|
|
34
|
+
'mutated_by',
|
|
35
|
+
// 2.17 T-09 (design §«Механика версий», строка 88): --from-proposal:
|
|
36
|
+
// proposal -proposes-> face-версия (пара, прецедент mutates/mutated_by)
|
|
37
|
+
'proposes',
|
|
38
|
+
'proposed_by',
|
|
31
39
|
];
|
|
32
40
|
export const RelationSchema = z.object({
|
|
33
41
|
id: z.string().min(1),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-schema.js","sourceRoot":"","sources":["../../../src/domain/schemas/relation-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,SAAS;IACT,aAAa;IACb,UAAU;IACV,cAAc;IACd,UAAU;IACV,WAAW;IACX,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,aAAa;IACb,YAAY;IACZ,aAAa;IACb,aAAa;IACb,UAAU;IACV,UAAU;IACV,eAAe;IACf,oEAAoE;IACpE,8EAA8E;IAC9E,SAAS;IACT,YAAY;IACZ,yEAAyE;IACzE,oDAAoD;IACpD,YAAY;IACZ,eAAe;
|
|
1
|
+
{"version":3,"file":"relation-schema.js","sourceRoot":"","sources":["../../../src/domain/schemas/relation-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,SAAS;IACT,aAAa;IACb,UAAU;IACV,cAAc;IACd,UAAU;IACV,WAAW;IACX,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,aAAa;IACb,YAAY;IACZ,aAAa;IACb,aAAa;IACb,UAAU;IACV,UAAU;IACV,eAAe;IACf,oEAAoE;IACpE,8EAA8E;IAC9E,SAAS;IACT,YAAY;IACZ,yEAAyE;IACzE,oDAAoD;IACpD,YAAY;IACZ,eAAe;IACf,wEAAwE;IACxE,uDAAuD;IACvD,SAAS;IACT,YAAY;IACZ,qEAAqE;IACrE,wEAAwE;IACxE,UAAU;IACV,aAAa;CACL,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,wEAAwE;IACxE,4DAA4D;IAC5D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC"}
|
|
@@ -50,7 +50,7 @@ export declare const SessionCheckpointSchema: z.ZodObject<{
|
|
|
50
50
|
long_term: "long_term";
|
|
51
51
|
short_term: "short_term";
|
|
52
52
|
}>>;
|
|
53
|
-
type: z.ZodLiteral<"rule" | "lesson" | "decision" | "thread" | "complaint" | "tool" | "note">;
|
|
53
|
+
type: z.ZodLiteral<"rule" | "lesson" | "decision" | "thread" | "complaint" | "tool" | "note" | "face">;
|
|
54
54
|
status: z.ZodEnum<{
|
|
55
55
|
active: "active";
|
|
56
56
|
open: "open";
|