@theseus-whale/dsh-continuity 0.0.0-stage → 4.12.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/INSTALL.md +25 -0
- package/PANEL.md +92 -0
- package/README.md +286 -2
- package/RELEASE-NOTES.md +732 -0
- package/bin/bc-acceptance-full.mjs +91 -0
- package/bin/bc-acceptance-tight.mjs +66 -0
- package/bin/bc-acceptance.mjs +22 -0
- package/bin/bc-add-keywords.mjs +21 -0
- package/bin/bc-demo.mjs +47 -0
- package/bin/bc-expand-hint.mjs +179 -0
- package/bin/bc-ingest-index.mjs +35 -0
- package/bin/bc-ingest.mjs +31 -0
- package/bin/bc-label-demo.mjs +18 -0
- package/bin/bc-relabel.mjs +150 -0
- package/bin/bc-sessionize.mjs +59 -0
- package/bin/coref_pipeline.py +47 -0
- package/bin/coref_service.py +57 -0
- package/bin/debug_ckip.py +16 -0
- package/bin/debug_ner_zh.py +18 -0
- package/bin/doctor.mjs +275 -0
- package/bin/en_ner_error_audit.py +33 -0
- package/bin/eval-label-rules.mjs +342 -0
- package/bin/export-turns.py +68 -0
- package/bin/extract-user-paragraph.mjs +14 -0
- package/bin/extraction-composite-smoke.mjs +28 -0
- package/bin/extraction-latency.mjs +58 -0
- package/bin/extraction-user-smoke.mjs +28 -0
- package/bin/extraction_service.py +164 -0
- package/bin/facet-active-experiment.mjs +110 -0
- package/bin/facet-covid.mjs +8 -0
- package/bin/facet-curve.mjs +27 -0
- package/bin/facet-embedding-train.mjs +20 -0
- package/bin/facet-embedding-validate.mjs +83 -0
- package/bin/facet-eval-roleplay.mjs +42 -0
- package/bin/facet-eval.mjs +38 -0
- package/bin/facet-fold.mjs +31 -0
- package/bin/facet-load.mjs +16 -0
- package/bin/facet-mlp-scan.mjs +45 -0
- package/bin/facet-mvp.mjs +34 -0
- package/bin/facet-online-experiments.mjs +78 -0
- package/bin/facet-online-race.mjs +99 -0
- package/bin/facet-online-validate.mjs +51 -0
- package/bin/facet-panel.mjs +22 -0
- package/bin/facet-passage.mjs +41 -0
- package/bin/facet-random-validate.mjs +48 -0
- package/bin/facet-roleplay.mjs +33 -0
- package/bin/facet-scan.mjs +56 -0
- package/bin/facet-segment.mjs +34 -0
- package/bin/facet-train.mjs +19 -0
- package/bin/facet-validate.mjs +103 -0
- package/bin/facet-zeroshot.mjs +14 -0
- package/bin/install-templates.mjs +72 -0
- package/bin/memory-bench.mjs +53 -0
- package/bin/memory-build-summary.mjs +43 -0
- package/bin/memory-build-vector.mjs +31 -0
- package/bin/memory-build.mjs +41 -0
- package/bin/memory-calibration.mjs +70 -0
- package/bin/memory-closed-loop.mjs +119 -0
- package/bin/memory-dry-run.mjs +70 -0
- package/bin/memory-eval.mjs +104 -0
- package/bin/memory-event-alias-test.mjs +89 -0
- package/bin/memory-extraction-bench.mjs +58 -0
- package/bin/memory-load-gate-replay.mjs +137 -0
- package/bin/memory-loop-test.mjs +90 -0
- package/bin/memory-pre-turn-harness.mjs +63 -0
- package/bin/memory-query.mjs +39 -0
- package/bin/memory-replay-hints.mjs +84 -0
- package/bin/memory-scale.mjs +58 -0
- package/bin/memory-scenario-test.mjs +146 -0
- package/bin/memory-user-loop.mjs +95 -0
- package/bin/ner_bench_tiny_zh.py +59 -0
- package/bin/ner_bench_zh.py +60 -0
- package/bin/ner_conll_en.py +139 -0
- package/bin/ner_direct_en.py +123 -0
- package/bin/ner_direct_zh.py +100 -0
- package/bin/ner_pipeline.py +208 -0
- package/bin/noise-selfcheck.mjs +50 -0
- package/bin/pack-integrity.mjs +47 -0
- package/bin/panel-check.mjs +57 -0
- package/bin/plugin-integrity.mjs +74 -0
- package/bin/preview-live.mjs +13 -0
- package/bin/public-install-check.mjs +222 -0
- package/bin/relabel-apply.mjs +272 -0
- package/bin/relabel-dry-run.mjs +381 -0
- package/bin/relik_pipeline.py +39 -0
- package/bin/relik_service.py +52 -0
- package/bin/srl_pipeline.py +55 -0
- package/bin/srl_service.py +68 -0
- package/bin/summary-index.mjs +151 -0
- package/bin/summary-query.mjs +79 -0
- package/bin/vec-check.mjs +27 -0
- package/bin/zh_ner_error_audit.py +36 -0
- package/bin/zh_ner_slot_eval.py +38 -0
- package/client.js +760 -0
- package/cordis.patch.yml +378 -0
- package/docs/API-NOTES.md +1743 -0
- package/docs/ARCHITECTURE.md +355 -0
- package/docs/CACHE.md +253 -0
- package/docs/CONDUCT.md +30 -0
- package/docs/CREATOR-HANDOFF.md +102 -0
- package/docs/EXPERIMENT.md +136 -0
- package/docs/FACET-MVP-REPORT.md +473 -0
- package/docs/GUIDE-0.4.66.md +195 -0
- package/docs/GUIDE.md +127 -0
- package/docs/MECHANISM.md +243 -0
- package/docs/NEW-INSTANCE-HANDOFF.md +219 -0
- package/docs/README.md +37 -0
- package/docs/SESSION-LAYOUT.md +151 -0
- package/docs/history-map.md +249 -0
- package/docs/relabel-migration-wiring.md +366 -0
- package/guides/00-READ-FIRST.md +206 -0
- package/guides/01-INSTALL.md +207 -0
- package/guides/02-TABLES.md +225 -0
- package/guides/03-AUDIT.md +201 -0
- package/guides/04-REBUILD.md +306 -0
- package/guides/05-FIRST-RUN.md +191 -0
- package/guides/06-EMBEDDING.md +146 -0
- package/guides/07-PTC-AND-ASSETS.md +221 -0
- package/icon.svg +7 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/models/README.md +13 -0
- package/models/Xenova/bge-small-zh-v1.5/config.json +31 -0
- package/models/Xenova/bge-small-zh-v1.5/onnx/model_quantized.onnx +0 -0
- package/models/Xenova/bge-small-zh-v1.5/tokenizer.json +21278 -0
- package/models/Xenova/bge-small-zh-v1.5/tokenizer_config.json +15 -0
- package/package.json +139 -4
- package/src/asset-tool.mjs +237 -0
- package/src/assets.mjs +244 -0
- package/src/backfill.mjs +74 -0
- package/src/backup.mjs +80 -0
- package/src/deadend.mjs +95 -0
- package/src/deleted-store.mjs +35 -0
- package/src/engine.mjs +3831 -0
- package/src/facets/classifier.mjs +146 -0
- package/src/facets/embedding-service.mjs +53 -0
- package/src/facets/embedding-worker.mjs +27 -0
- package/src/facets/embedding.mjs +163 -0
- package/src/facets/extract.mjs +80 -0
- package/src/facets/fold-plan.mjs +84 -0
- package/src/facets/hybrid.mjs +29 -0
- package/src/facets/index.mjs +113 -0
- package/src/facets/linear-probe.mjs +43 -0
- package/src/facets/load.mjs +37 -0
- package/src/facets/mlp-probe.mjs +54 -0
- package/src/facets/mlp-service.mjs +53 -0
- package/src/facets/mlp-worker.mjs +26 -0
- package/src/facets/online-knn.mjs +58 -0
- package/src/facets/online-models.mjs +227 -0
- package/src/facets/panel-state.mjs +23 -0
- package/src/facets/panel.mjs +73 -0
- package/src/facets/random.mjs +26 -0
- package/src/facets/scanner.mjs +35 -0
- package/src/facets/schema.mjs +75 -0
- package/src/facets/seed-examples.mjs +58 -0
- package/src/facets/sensitivity.mjs +98 -0
- package/src/facets/service.mjs +53 -0
- package/src/facets/store.mjs +39 -0
- package/src/facets/worker.mjs +23 -0
- package/src/folds-store.mjs +109 -0
- package/src/groups.mjs +167 -0
- package/src/handoff-tool.mjs +51 -0
- package/src/handoff.mjs +127 -0
- package/src/index.mjs +649 -0
- package/src/inject-policy.mjs +17 -0
- package/src/learning.mjs +88 -0
- package/src/memory/alias-proposal.mjs +40 -0
- package/src/memory/bc-audit.mjs +245 -0
- package/src/memory/bc-index-updater.mjs +404 -0
- package/src/memory/bc-index.mjs +48 -0
- package/src/memory/bc-label.mjs +220 -0
- package/src/memory/bc-panel-state.mjs +107 -0
- package/src/memory/bc-pre-step.mjs +463 -0
- package/src/memory/bc-recall.mjs +470 -0
- package/src/memory/bc-shift.mjs +123 -0
- package/src/memory/bc-store.mjs +41 -0
- package/src/memory/bm25.mjs +112 -0
- package/src/memory/calibration.mjs +54 -0
- package/src/memory/chatter.mjs +29 -0
- package/src/memory/cmap-file.mjs +107 -0
- package/src/memory/concepts-file.mjs +41 -0
- package/src/memory/coref-slots.mjs +40 -0
- package/src/memory/event-alias-ledger.mjs +87 -0
- package/src/memory/event-log.mjs +95 -0
- package/src/memory/event-model.mjs +132 -0
- package/src/memory/event-segmenter.mjs +36 -0
- package/src/memory/event-summary-tree.mjs +122 -0
- package/src/memory/extraction-adapter.mjs +76 -0
- package/src/memory/extraction-composite.mjs +75 -0
- package/src/memory/extraction-core.mjs +76 -0
- package/src/memory/extraction-pre-step.mjs +161 -0
- package/src/memory/extraction-provider.mjs +300 -0
- package/src/memory/extraction-score.mjs +36 -0
- package/src/memory/facet-stabilizer.mjs +59 -0
- package/src/memory/history-map.mjs +139 -0
- package/src/memory/language-router.mjs +30 -0
- package/src/memory/load-gate.mjs +161 -0
- package/src/memory/mechanical-note.mjs +104 -0
- package/src/memory/onboarding.mjs +163 -0
- package/src/memory/persona.mjs +78 -0
- package/src/memory/planner.mjs +249 -0
- package/src/memory/pre-turn.mjs +80 -0
- package/src/memory/query-aliases.mjs +39 -0
- package/src/memory/recall-cue.mjs +43 -0
- package/src/memory/recall.mjs +65 -0
- package/src/memory/referent-candidates.mjs +55 -0
- package/src/memory/referent-ledger.mjs +86 -0
- package/src/memory/relabel-migrate.mjs +376 -0
- package/src/memory/relik-adapter.mjs +25 -0
- package/src/memory/special-keywords.mjs +60 -0
- package/src/memory/structured-adapters.mjs +75 -0
- package/src/memory/summary-index.mjs +335 -0
- package/src/memory/summary-tree.mjs +110 -0
- package/src/memory/term-extractor.mjs +44 -0
- package/src/memory/tokenize.mjs +9 -0
- package/src/memory/vector-index.mjs +54 -0
- package/src/memory/window-summary.mjs +133 -0
- package/src/mood.mjs +133 -0
- package/src/peer-tool.mjs +63 -0
- package/src/peer.mjs +144 -0
- package/src/policy.mjs +170 -0
- package/src/preflight.mjs +113 -0
- package/src/provenance.mjs +94 -0
- package/src/range.mjs +75 -0
- package/src/recall-exact-tool.mjs +267 -0
- package/src/recall-tool.mjs +521 -0
- package/src/recheck.mjs +99 -0
- package/src/save-start.mjs +29 -0
- package/src/session-guard.mjs +140 -0
- package/src/session-log-tool.mjs +322 -0
- package/src/session-log.mjs +606 -0
- package/src/skills.mjs +111 -0
- package/src/split-range.mjs +115 -0
- package/src/state.mjs +198 -0
- package/src/t0.mjs +149 -0
- package/src/tag-confirm.mjs +78 -0
- package/src/tag-detect.mjs +42 -0
- package/src/tag-maintenance.mjs +285 -0
- package/src/tag-reject.mjs +73 -0
- package/src/tags-store.mjs +94 -0
- package/src/tags.mjs +692 -0
- package/src/threads-backend.mjs +26 -0
- package/src/threads-core.mjs +1887 -0
- package/src/threads-store.mjs +207 -0
- package/src/threads-tool.mjs +522 -0
- package/src/threads.mjs +929 -0
- package/src/tool-preview.mjs +427 -0
- package/src/topic.mjs +63 -0
- package/src/training.mjs +75 -0
- package/src/turn-tag.mjs +62 -0
- package/src/user-turn.mjs +39 -0
- package/templates/cmap.md +11 -0
- package/templates/concepts.md +12 -0
- package/templates/habits.md +40 -0
- package/templates/keywords.md +6 -0
- package/templates/rebuild.md +134 -0
- package/templates/rules-safe.md +184 -0
- package/templates/rules.md +177 -0
package/src/handoff.mjs
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { writeChildAsset } from './assets.mjs';
|
|
4
|
+
|
|
5
|
+
const CONFIDENCE = new Set(['high', 'medium', 'low']);
|
|
6
|
+
|
|
7
|
+
function strings(value) {
|
|
8
|
+
return (Array.isArray(value) ? value : [])
|
|
9
|
+
.filter((item) => typeof item === 'string' && item.trim().length > 0)
|
|
10
|
+
.map((item) => item.trim());
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function seqs(value) {
|
|
14
|
+
return (Array.isArray(value) ? value : [])
|
|
15
|
+
.map((item) => Number(item))
|
|
16
|
+
.filter((item) => Number.isInteger(item) && item >= 0);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** Normalize a PTC child result into the parent-facing handoff envelope. */
|
|
20
|
+
export function normalizeHandoff(input) {
|
|
21
|
+
if (input === null || typeof input !== 'object') {
|
|
22
|
+
throw new Error('ptc_handoff: envelope must be an object');
|
|
23
|
+
}
|
|
24
|
+
const childSessionId = String(input.childSessionId ?? '').trim();
|
|
25
|
+
const runId = String(input.runId ?? '').trim();
|
|
26
|
+
if (childSessionId.length === 0) throw new Error('ptc_handoff: childSessionId is required');
|
|
27
|
+
if (runId.length === 0) throw new Error('ptc_handoff: runId is required');
|
|
28
|
+
const summary = String(input.summary ?? '').trim();
|
|
29
|
+
if (summary.length === 0) throw new Error('ptc_handoff: summary is required');
|
|
30
|
+
const confidence = String(input.confidence ?? 'medium').toLowerCase();
|
|
31
|
+
if (!CONFIDENCE.has(confidence)) throw new Error('ptc_handoff: confidence must be high, medium, or low');
|
|
32
|
+
return {
|
|
33
|
+
status: typeof input.status === 'string' && input.status.length > 0 ? input.status : 'ok',
|
|
34
|
+
childSessionId,
|
|
35
|
+
runId,
|
|
36
|
+
summary,
|
|
37
|
+
decisions: strings(input.decisions),
|
|
38
|
+
open: strings(input.open),
|
|
39
|
+
artifacts: strings(input.artifacts),
|
|
40
|
+
sourceSeqs: seqs(input.sourceSeqs),
|
|
41
|
+
confidence,
|
|
42
|
+
createdAt: new Date().toISOString(),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function handoffText(envelope) {
|
|
47
|
+
return [
|
|
48
|
+
`[ptc-handoff child=${envelope.childSessionId} run=${envelope.runId} confidence=${envelope.confidence}]`,
|
|
49
|
+
`status: ${envelope.status}`,
|
|
50
|
+
`summary: ${envelope.summary}`,
|
|
51
|
+
...(envelope.decisions.length ? [`decisions: ${envelope.decisions.join(' | ')}`] : []),
|
|
52
|
+
...(envelope.open.length ? [`open: ${envelope.open.join(' | ')}`] : []),
|
|
53
|
+
...(envelope.artifacts.length ? [`artifacts: ${envelope.artifacts.join(', ')}`] : []),
|
|
54
|
+
...(envelope.unresolvedArtifacts?.length
|
|
55
|
+
? [`unresolved artifacts: ${envelope.unresolvedArtifacts.map((item) => item.source).join(', ')}`]
|
|
56
|
+
: []),
|
|
57
|
+
...(envelope.sourceSeqs.length ? [`sourceSeqs: ${envelope.sourceSeqs.join(',')}`] : []),
|
|
58
|
+
].join('\n');
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** Persist the full envelope as a child artifact; the parent gets a pointer. */
|
|
62
|
+
export async function writeHandoff({ home, parentSessionId, envelope }) {
|
|
63
|
+
const normalized = normalizeHandoff(envelope);
|
|
64
|
+
const artifacts = [];
|
|
65
|
+
const artifactSources = [];
|
|
66
|
+
const unresolvedArtifacts = [];
|
|
67
|
+
const baseSeq = normalized.sourceSeqs[0] ?? 0;
|
|
68
|
+
for (let index = 0; index < normalized.artifacts.length; index += 1) {
|
|
69
|
+
const source = normalized.artifacts[index];
|
|
70
|
+
try {
|
|
71
|
+
if (!fs.existsSync(source) || !fs.statSync(source).isFile()) {
|
|
72
|
+
unresolvedArtifacts.push({ source, reason: 'not-a-file' });
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const artifactSeq = baseSeq + index + 1;
|
|
76
|
+
const written = await writeChildAsset({
|
|
77
|
+
home,
|
|
78
|
+
parentSessionId,
|
|
79
|
+
childSessionId: normalized.childSessionId,
|
|
80
|
+
runId: normalized.runId,
|
|
81
|
+
block: {
|
|
82
|
+
type: 'file',
|
|
83
|
+
path: source,
|
|
84
|
+
name: path.basename(source),
|
|
85
|
+
},
|
|
86
|
+
seq: artifactSeq,
|
|
87
|
+
});
|
|
88
|
+
if (!written.ok) {
|
|
89
|
+
unresolvedArtifacts.push({ source, reason: written.reason ?? 'no-payload' });
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
artifacts.push(written.row.path);
|
|
93
|
+
artifactSources.push({
|
|
94
|
+
source,
|
|
95
|
+
path: written.row.path,
|
|
96
|
+
seq: artifactSeq,
|
|
97
|
+
mime: written.row.mime,
|
|
98
|
+
sha256: written.row.sha256,
|
|
99
|
+
bytes: written.row.bytes,
|
|
100
|
+
});
|
|
101
|
+
} catch (error) {
|
|
102
|
+
unresolvedArtifacts.push({ source, reason: String(error?.message ?? error) });
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const result = {
|
|
106
|
+
...normalized,
|
|
107
|
+
artifacts,
|
|
108
|
+
artifactSources,
|
|
109
|
+
artifactsResolved: unresolvedArtifacts.length === 0,
|
|
110
|
+
unresolvedArtifacts,
|
|
111
|
+
};
|
|
112
|
+
const payload = Buffer.from(JSON.stringify(result, null, 2), 'utf8');
|
|
113
|
+
const written = await writeChildAsset({
|
|
114
|
+
home,
|
|
115
|
+
parentSessionId,
|
|
116
|
+
childSessionId: result.childSessionId,
|
|
117
|
+
runId: result.runId,
|
|
118
|
+
block: {
|
|
119
|
+
type: 'file',
|
|
120
|
+
name: 'handoff.json',
|
|
121
|
+
mimeType: 'application/json',
|
|
122
|
+
source: { data: payload.toString('base64'), media_type: 'application/json' },
|
|
123
|
+
},
|
|
124
|
+
seq: result.sourceSeqs[0] ?? 0,
|
|
125
|
+
});
|
|
126
|
+
return { envelope: result, written };
|
|
127
|
+
}
|