@adhdev/mesh-shared 1.0.82-rc.36 → 1.0.82-rc.38
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/assistant-protocol.d.ts +11 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +147 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +128 -8
- package/dist/index.mjs.map +1 -1
- package/dist/launch-defaults.d.ts +2 -0
- package/dist/mesh-tool-names.d.ts +2 -2
- package/dist/mission-git-state.d.ts +83 -0
- package/dist/mission-items.d.ts +2 -2
- package/dist/node-facts.d.ts +34 -0
- package/dist/release.d.ts +90 -0
- package/dist/turn-ipc-mission.d.ts +5 -0
- package/package.json +1 -1
- package/src/assistant-protocol.ts +19 -1
- package/src/index.ts +2 -0
- package/src/launch-defaults.ts +2 -0
- package/src/mesh-tool-names.ts +8 -0
- package/src/mission-git-state.ts +112 -0
- package/src/mission-items.ts +2 -2
- package/src/node-facts.ts +34 -0
- package/src/release.ts +121 -0
- package/src/turn-ipc-mission.ts +9 -4
package/dist/index.mjs
CHANGED
|
@@ -755,6 +755,7 @@ var CANONICAL_MESH_TOOL_NAMES = [
|
|
|
755
755
|
"mesh_enqueue_task",
|
|
756
756
|
"mesh_view_queue",
|
|
757
757
|
"mesh_queue_cancel",
|
|
758
|
+
"mesh_direct_cancel",
|
|
758
759
|
"mesh_queue_requeue",
|
|
759
760
|
"mesh_queue_revise",
|
|
760
761
|
"mesh_send_task",
|
|
@@ -777,6 +778,7 @@ var CANONICAL_MESH_TOOL_NAMES = [
|
|
|
777
778
|
"mesh_attach_remote",
|
|
778
779
|
"mesh_clone_node",
|
|
779
780
|
"mesh_remove_node",
|
|
781
|
+
"mesh_retry_node_bootstrap",
|
|
780
782
|
"mesh_cleanup_worktree_nodes",
|
|
781
783
|
"mesh_refine_node",
|
|
782
784
|
"mesh_refine_batch",
|
|
@@ -793,6 +795,12 @@ var CANONICAL_MESH_TOOL_NAMES = [
|
|
|
793
795
|
"mesh_reconcile_ledger",
|
|
794
796
|
"mesh_mission_upsert",
|
|
795
797
|
"mesh_mission_list",
|
|
798
|
+
"mesh_mission_git_eval",
|
|
799
|
+
"mesh_release_upsert",
|
|
800
|
+
"mesh_release_scope",
|
|
801
|
+
"mesh_release_list",
|
|
802
|
+
"mesh_release_record_deploy",
|
|
803
|
+
"mesh_release_changelog_draft",
|
|
796
804
|
"mesh_review_inbox",
|
|
797
805
|
"mesh_node_slots",
|
|
798
806
|
"driver_list",
|
|
@@ -1797,6 +1805,7 @@ var ASSISTANT_TOOLS = [
|
|
|
1797
1805
|
"project_attach_remote",
|
|
1798
1806
|
"discover_repos",
|
|
1799
1807
|
"memory",
|
|
1808
|
+
"memory_search",
|
|
1800
1809
|
"skill_view",
|
|
1801
1810
|
"skill_manage",
|
|
1802
1811
|
"project_note",
|
|
@@ -1807,7 +1816,8 @@ var ASSISTANT_TOOLS = [
|
|
|
1807
1816
|
"artifact_list",
|
|
1808
1817
|
"artifact_read",
|
|
1809
1818
|
"decision_answer",
|
|
1810
|
-
"decision_request"
|
|
1819
|
+
"decision_request",
|
|
1820
|
+
"session_control"
|
|
1811
1821
|
];
|
|
1812
1822
|
var ASSISTANT_TOOL_SET = new Set(ASSISTANT_TOOLS);
|
|
1813
1823
|
function isAssistantTool(value) {
|
|
@@ -1830,6 +1840,8 @@ var ASSISTANT_VERB = {
|
|
|
1830
1840
|
projectAttachRemote: "assistant_project_attach_remote",
|
|
1831
1841
|
discoverRepos: "assistant_discover_repos",
|
|
1832
1842
|
memory: "assistant_memory",
|
|
1843
|
+
/** Pull-only FTS search over the archive tier (memory design 2026-11-01 §3.4). */
|
|
1844
|
+
memorySearch: "assistant_memory_search",
|
|
1833
1845
|
skillView: "assistant_skill_view",
|
|
1834
1846
|
skillManage: "assistant_skill_manage",
|
|
1835
1847
|
projectNote: "assistant_project_note",
|
|
@@ -1841,6 +1853,8 @@ var ASSISTANT_VERB = {
|
|
|
1841
1853
|
decisionAnswer: "assistant_decision_answer",
|
|
1842
1854
|
/** Register a plain-text question a coordinator put to the owner as a decision item (§5.2). */
|
|
1843
1855
|
decisionRequest: "assistant_decision_request",
|
|
1856
|
+
/** Stop / restart / switch the provider of a coordinator, worker or the assistant session (handoff design 2026-11-01 §4). */
|
|
1857
|
+
sessionControl: "assistant_session_control",
|
|
1844
1858
|
// assistant-side daemon verbs without a tool of the same name
|
|
1845
1859
|
launch: "launch_assistant",
|
|
1846
1860
|
pendingRelays: "assistant_pending_relays",
|
|
@@ -1848,6 +1862,12 @@ var ASSISTANT_VERB = {
|
|
|
1848
1862
|
stagedResolve: "assistant_staged_resolve",
|
|
1849
1863
|
storeAdmin: "assistant_store_admin",
|
|
1850
1864
|
importSkills: "assistant_import_skills",
|
|
1865
|
+
/** Owner skill list (attach/view counts, save proposals, recent skill metrics); reads move no counter. */
|
|
1866
|
+
skillsList: "assistant_skills_list",
|
|
1867
|
+
/** Owner: what the assistant remembered recently, with undo handles (memory design §3.2). */
|
|
1868
|
+
memoryDigest: "assistant_memory_digest",
|
|
1869
|
+
/** Owner: reverse one remembered write or one batch (memory design §3.2). Never an assistant tool. */
|
|
1870
|
+
memoryUndo: "assistant_memory_undo",
|
|
1851
1871
|
/** Projects the assistant is following (open relay threads) — list / stop following. */
|
|
1852
1872
|
threads: "assistant_threads",
|
|
1853
1873
|
threadClose: "assistant_thread_close"
|
|
@@ -1866,6 +1886,7 @@ var ASSISTANT_TOOL_VERBS = {
|
|
|
1866
1886
|
project_attach_remote: ASSISTANT_VERB.projectAttachRemote,
|
|
1867
1887
|
discover_repos: ASSISTANT_VERB.discoverRepos,
|
|
1868
1888
|
memory: ASSISTANT_VERB.memory,
|
|
1889
|
+
memory_search: ASSISTANT_VERB.memorySearch,
|
|
1869
1890
|
skill_view: ASSISTANT_VERB.skillView,
|
|
1870
1891
|
skill_manage: ASSISTANT_VERB.skillManage,
|
|
1871
1892
|
project_note: ASSISTANT_VERB.projectNote,
|
|
@@ -1874,18 +1895,23 @@ var ASSISTANT_TOOL_VERBS = {
|
|
|
1874
1895
|
artifact_list: ASSISTANT_VERB.artifactList,
|
|
1875
1896
|
artifact_read: ASSISTANT_VERB.artifactRead,
|
|
1876
1897
|
decision_answer: ASSISTANT_VERB.decisionAnswer,
|
|
1877
|
-
decision_request: ASSISTANT_VERB.decisionRequest
|
|
1898
|
+
decision_request: ASSISTANT_VERB.decisionRequest,
|
|
1899
|
+
session_control: ASSISTANT_VERB.sessionControl
|
|
1878
1900
|
};
|
|
1879
|
-
var ASSISTANT_WRITE_TOOLS = ["project_watch", "assistant_action", "memory", "skill_manage", "project_note", "project_send", "project_add", "project_attach_remote", "launch_defaults_set", "decision_answer", "decision_request"];
|
|
1901
|
+
var ASSISTANT_WRITE_TOOLS = ["project_watch", "assistant_action", "memory", "skill_manage", "project_note", "project_send", "project_add", "project_attach_remote", "launch_defaults_set", "decision_answer", "decision_request", "session_control"];
|
|
1880
1902
|
var ASSISTANT_OWNER_VERBS = [
|
|
1881
1903
|
ASSISTANT_VERB.executionSettings,
|
|
1882
1904
|
ASSISTANT_VERB.stagedResolve,
|
|
1883
1905
|
ASSISTANT_VERB.storeAdmin,
|
|
1884
1906
|
ASSISTANT_VERB.importSkills,
|
|
1907
|
+
ASSISTANT_VERB.skillsList,
|
|
1908
|
+
ASSISTANT_VERB.memoryDigest,
|
|
1909
|
+
ASSISTANT_VERB.memoryUndo,
|
|
1885
1910
|
ASSISTANT_VERB.threadClose
|
|
1886
1911
|
];
|
|
1887
1912
|
var ASSISTANT_REVIEW_TURN_VERBS = [
|
|
1888
1913
|
ASSISTANT_VERB.memory,
|
|
1914
|
+
ASSISTANT_VERB.memorySearch,
|
|
1889
1915
|
ASSISTANT_VERB.skillView,
|
|
1890
1916
|
ASSISTANT_VERB.skillManage,
|
|
1891
1917
|
ASSISTANT_VERB.projectNote
|
|
@@ -2813,13 +2839,13 @@ function isMissionBriefWire(value) {
|
|
|
2813
2839
|
}
|
|
2814
2840
|
return true;
|
|
2815
2841
|
}
|
|
2816
|
-
var STRUCTURED_MISSION_KEYS = ["summary", "outcome", "outcomeReason", "version", "carryOver", "openItems"];
|
|
2842
|
+
var STRUCTURED_MISSION_KEYS = ["summary", "releaseNote", "outcome", "outcomeReason", "version", "carryOver", "openItems"];
|
|
2817
2843
|
function isOpenItemCountsWire(value) {
|
|
2818
2844
|
if (!isRecord(value) || !hasOnlyKeys2(value, ["remaining", "live_check", "decision", "evidence"])) return false;
|
|
2819
2845
|
return ["remaining", "live_check", "decision", "evidence"].every((k) => isNonNegativeInt(value[k]));
|
|
2820
2846
|
}
|
|
2821
2847
|
function isStructuredMissionFields(value) {
|
|
2822
|
-
for (const k of ["summary", "outcome", "outcomeReason"]) {
|
|
2848
|
+
for (const k of ["summary", "releaseNote", "outcome", "outcomeReason"]) {
|
|
2823
2849
|
if (value[k] !== void 0 && typeof value[k] !== "string") return false;
|
|
2824
2850
|
}
|
|
2825
2851
|
if (value.version !== void 0 && !isNonNegativeInt(value.version)) return false;
|
|
@@ -2837,7 +2863,7 @@ function isMeshMissionRecordWire(value) {
|
|
|
2837
2863
|
return true;
|
|
2838
2864
|
}
|
|
2839
2865
|
function isMissionUpsertRequest(value) {
|
|
2840
|
-
if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "id", "title", "goal", "status", "brief", "structured", "summary", "outcome", "outcomeReason", "carryOverTo", "toCarryOver", "itemsAdd", "itemsUpdate"])) return false;
|
|
2866
|
+
if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "id", "title", "goal", "status", "brief", "structured", "summary", "releaseNote", "outcome", "outcomeReason", "carryOverTo", "toCarryOver", "itemsAdd", "itemsUpdate"])) return false;
|
|
2841
2867
|
if (value.v !== TURN_IPC_PROTOCOL_VERSION) return false;
|
|
2842
2868
|
if (!isEvidenceIdentifier(value.meshId)) return false;
|
|
2843
2869
|
if (value.id !== void 0 && !isEvidenceIdentifier(value.id)) return false;
|
|
@@ -2845,7 +2871,7 @@ function isMissionUpsertRequest(value) {
|
|
|
2845
2871
|
if (value.title.trim().length === 0 && value.toCarryOver !== true && value.id === void 0) return false;
|
|
2846
2872
|
if (value.structured !== void 0 && typeof value.structured !== "boolean") return false;
|
|
2847
2873
|
if (value.toCarryOver !== void 0 && typeof value.toCarryOver !== "boolean") return false;
|
|
2848
|
-
for (const k of ["summary", "outcome", "outcomeReason"]) {
|
|
2874
|
+
for (const k of ["summary", "releaseNote", "outcome", "outcomeReason"]) {
|
|
2849
2875
|
if (value[k] !== void 0 && typeof value[k] !== "string") return false;
|
|
2850
2876
|
}
|
|
2851
2877
|
if (value.carryOverTo !== void 0 && !isEvidenceIdentifier(value.carryOverTo)) return false;
|
|
@@ -3475,7 +3501,7 @@ function touchedFilesOutsideOwnership(touched, owned) {
|
|
|
3475
3501
|
|
|
3476
3502
|
// src/mission-items.ts
|
|
3477
3503
|
var MISSION_ITEM_KINDS = ["remaining", "live_check", "decision", "evidence"];
|
|
3478
|
-
var MISSION_ITEM_STATES = ["open", "done", "dropped", "moved", "answered", "expired", "withdrawn", "superseded"];
|
|
3504
|
+
var MISSION_ITEM_STATES = ["open", "done", "failed", "dropped", "moved", "answered", "expired", "withdrawn", "superseded"];
|
|
3479
3505
|
var COORDINATOR_SETTABLE_ITEM_STATES = {
|
|
3480
3506
|
remaining: ["open", "done", "dropped"],
|
|
3481
3507
|
live_check: ["open", "done", "dropped"],
|
|
@@ -3745,6 +3771,81 @@ function normalizeReportCommits(value) {
|
|
|
3745
3771
|
return out;
|
|
3746
3772
|
}
|
|
3747
3773
|
|
|
3774
|
+
// src/mission-git-state.ts
|
|
3775
|
+
var MISSION_REF_GIT_STATUSES = ["contained_ancestor", "contained_patch_equivalent", "not_contained", "unknown"];
|
|
3776
|
+
var MISSION_REF_GIT_METHODS = ["ancestry", "cherry", "residual_patch"];
|
|
3777
|
+
var MISSION_GIT_STATES = ["no_refs", "landed", "partial", "not_landed", "unknown"];
|
|
3778
|
+
function isMissionRefContained(status) {
|
|
3779
|
+
return status === "contained_ancestor" || status === "contained_patch_equivalent";
|
|
3780
|
+
}
|
|
3781
|
+
function aggregateMissionGitState(statuses) {
|
|
3782
|
+
const total = statuses.length;
|
|
3783
|
+
const contained = statuses.filter(isMissionRefContained).length;
|
|
3784
|
+
const notContained = statuses.filter((s) => s === "not_contained").length;
|
|
3785
|
+
const unknown = statuses.filter((s) => s === "unknown").length;
|
|
3786
|
+
const counts = { total, contained, notContained, unknown };
|
|
3787
|
+
if (total === 0) return { state: "no_refs", partialUnknown: false, counts };
|
|
3788
|
+
if (contained === total) return { state: "landed", partialUnknown: false, counts };
|
|
3789
|
+
if (contained > 0) return { state: "partial", partialUnknown: unknown > 0, counts };
|
|
3790
|
+
if (notContained === total) return { state: "not_landed", partialUnknown: false, counts };
|
|
3791
|
+
return { state: "unknown", partialUnknown: false, counts };
|
|
3792
|
+
}
|
|
3793
|
+
|
|
3794
|
+
// src/release.ts
|
|
3795
|
+
var MESH_RELEASE_CHANNELS = ["preview", "stable"];
|
|
3796
|
+
function isMeshReleaseChannel(value) {
|
|
3797
|
+
return typeof value === "string" && MESH_RELEASE_CHANNELS.includes(value);
|
|
3798
|
+
}
|
|
3799
|
+
var MESH_RELEASE_STATUSES = ["planned", "frozen", "deployed", "verified", "superseded", "cancelled"];
|
|
3800
|
+
function isReleaseStatus(value) {
|
|
3801
|
+
return typeof value === "string" && MESH_RELEASE_STATUSES.includes(value);
|
|
3802
|
+
}
|
|
3803
|
+
var RELEASE_MEMBER_STATES = ["member", "moved_out", "removed"];
|
|
3804
|
+
var RELEASE_ACTORS = ["coordinator", "owner", "assistant", "script"];
|
|
3805
|
+
var RELEASE_EVENT_TYPES = [
|
|
3806
|
+
"created",
|
|
3807
|
+
"status_changed",
|
|
3808
|
+
"scope_added",
|
|
3809
|
+
"scope_moved",
|
|
3810
|
+
"scope_removed",
|
|
3811
|
+
"deploy_recorded",
|
|
3812
|
+
"changelog_drafted",
|
|
3813
|
+
"changelog_applied"
|
|
3814
|
+
];
|
|
3815
|
+
var MISSION_RELEASE_EVENT_TYPES = ["release_attached", "release_moved", "release_detached"];
|
|
3816
|
+
var RELEASE_LIMITS = {
|
|
3817
|
+
name: 80,
|
|
3818
|
+
note: 500,
|
|
3819
|
+
/** `mesh_missions.release_note`: one user/operator-visible sentence. */
|
|
3820
|
+
releaseNote: 400,
|
|
3821
|
+
missionsPerCall: 100,
|
|
3822
|
+
changelogEntries: 300
|
|
3823
|
+
};
|
|
3824
|
+
var CHANGELOG_SECTIONS = ["Added", "Fixed", "Changed"];
|
|
3825
|
+
var NEEDS_WORDING_MARKER = "[needs user-facing wording]";
|
|
3826
|
+
function changelogMissionMarker(missionId) {
|
|
3827
|
+
return `<!-- m:${missionId.slice(0, 8)} -->`;
|
|
3828
|
+
}
|
|
3829
|
+
function classifyChangelogSection(text, hint) {
|
|
3830
|
+
const m = /^\s*\[(added|fixed|changed)\]\s*/i.exec(text);
|
|
3831
|
+
if (m) {
|
|
3832
|
+
const key = m[1].toLowerCase();
|
|
3833
|
+
return { section: key === "added" ? "Added" : key === "fixed" ? "Fixed" : "Changed", text: text.slice(m[0].length).trim() };
|
|
3834
|
+
}
|
|
3835
|
+
const probe = `${hint ?? ""} ${text}`.toLowerCase();
|
|
3836
|
+
if (/\b(fix|fixes|fixed|bug|regression|crash|error)\b|오류|결함|버그|수정/.test(probe)) return { section: "Fixed", text };
|
|
3837
|
+
if (/\b(add|adds|added|new|introduc\w*|support\w*)\b|신규|추가/.test(probe)) return { section: "Added", text };
|
|
3838
|
+
return { section: "Changed", text };
|
|
3839
|
+
}
|
|
3840
|
+
function lintChangelogText(text) {
|
|
3841
|
+
const out = [];
|
|
3842
|
+
if (/\bwave[\s-]*\d+/i.test(text) || /웨이브\s*\d+/.test(text)) out.push("mentions an internal wave number");
|
|
3843
|
+
if (/\brc[.\s-]?\d+\b/i.test(text)) out.push("mentions an internal rc number");
|
|
3844
|
+
if (/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/i.test(text) || /\bmi_[0-9a-f]{12}\b/.test(text) || /\brel_[0-9a-f]{12}\b/.test(text)) out.push("contains an internal id");
|
|
3845
|
+
if (/\bmission\b/i.test(text)) out.push('mentions "mission" (internal vocabulary)');
|
|
3846
|
+
return out;
|
|
3847
|
+
}
|
|
3848
|
+
|
|
3748
3849
|
// src/decision-push-relay.ts
|
|
3749
3850
|
var DECISION_PUSH_RELAY_COMMAND = "mission_decision_push_relay_answer";
|
|
3750
3851
|
var DECISION_PUSH_RELAY_SOURCE = "push_relay";
|
|
@@ -4212,6 +4313,7 @@ export {
|
|
|
4212
4313
|
CANONICAL_MESH_TOOL_NAMES,
|
|
4213
4314
|
CARRY_OVER_MISSION_GOAL,
|
|
4214
4315
|
CARRY_OVER_MISSION_TITLE,
|
|
4316
|
+
CHANGELOG_SECTIONS,
|
|
4215
4317
|
CLAUDE_TUI_REVIEW_PAGE_NOT_FOCUSED_PREFIX,
|
|
4216
4318
|
CLAUDE_TUI_REVIEW_UNCONFIRMED_PREFIX,
|
|
4217
4319
|
CLI_SLOT_RECIPES,
|
|
@@ -4262,6 +4364,8 @@ export {
|
|
|
4262
4364
|
MESH_MISSION_STATUSES,
|
|
4263
4365
|
MESH_P2P_SIGNAL_TYPES,
|
|
4264
4366
|
MESH_RECORD_PAYLOAD_KEYS,
|
|
4367
|
+
MESH_RELEASE_CHANNELS,
|
|
4368
|
+
MESH_RELEASE_STATUSES,
|
|
4265
4369
|
MESH_SESSION_CLEANUP_MODES,
|
|
4266
4370
|
MESH_STATUS_DOC_SPEC,
|
|
4267
4371
|
MESH_TASK_DIFFICULTIES,
|
|
@@ -4276,15 +4380,20 @@ export {
|
|
|
4276
4380
|
MISSION_DECISION_ON_DUE,
|
|
4277
4381
|
MISSION_DECISION_OPTION_IDS,
|
|
4278
4382
|
MISSION_DECISION_URGENCIES,
|
|
4383
|
+
MISSION_GIT_STATES,
|
|
4279
4384
|
MISSION_ITEM_KINDS,
|
|
4280
4385
|
MISSION_ITEM_STATES,
|
|
4281
4386
|
MISSION_LIMITS,
|
|
4282
4387
|
MISSION_OUTCOMES,
|
|
4388
|
+
MISSION_REF_GIT_METHODS,
|
|
4389
|
+
MISSION_REF_GIT_STATUSES,
|
|
4283
4390
|
MISSION_REF_KINDS,
|
|
4391
|
+
MISSION_RELEASE_EVENT_TYPES,
|
|
4284
4392
|
MODEL_AXIS_SOURCES,
|
|
4285
4393
|
MODEL_SELECTION_HISTORY_LIMIT,
|
|
4286
4394
|
MeshChunkAssembler,
|
|
4287
4395
|
NATIVE_TURN_OUTCOMES,
|
|
4396
|
+
NEEDS_WORDING_MARKER,
|
|
4288
4397
|
NOTIFY_KINDS,
|
|
4289
4398
|
NO_PROGRESS_OBSERVED_STATUSES,
|
|
4290
4399
|
NPM_UPDATE_TAGS,
|
|
@@ -4307,7 +4416,11 @@ export {
|
|
|
4307
4416
|
RELAY_REPROBE_BASE_DELAY_MS,
|
|
4308
4417
|
RELAY_REPROBE_JITTER_RATIO,
|
|
4309
4418
|
RELAY_REPROBE_MAX_DELAY_MS,
|
|
4419
|
+
RELEASE_ACTORS,
|
|
4310
4420
|
RELEASE_CHANNELS,
|
|
4421
|
+
RELEASE_EVENT_TYPES,
|
|
4422
|
+
RELEASE_LIMITS,
|
|
4423
|
+
RELEASE_MEMBER_STATES,
|
|
4311
4424
|
REMOVED_MESH_TOOLS,
|
|
4312
4425
|
RETIRED_MESH_TOOLS,
|
|
4313
4426
|
RelayReprobeScheduler,
|
|
@@ -4354,12 +4467,15 @@ export {
|
|
|
4354
4467
|
WORKER_REPORT_OUTCOMES,
|
|
4355
4468
|
WORKER_REPORT_SUMMARY_MAX_CHARS,
|
|
4356
4469
|
WORKER_TOOLS,
|
|
4470
|
+
aggregateMissionGitState,
|
|
4357
4471
|
appendWorkerProtocolFooter,
|
|
4358
4472
|
argsCarryStatusProbeMarker,
|
|
4359
4473
|
assessQuotaFreshness,
|
|
4360
4474
|
boundEventPayload,
|
|
4361
4475
|
buildSlotProposal,
|
|
4362
4476
|
canonicalDaemonId,
|
|
4477
|
+
changelogMissionMarker,
|
|
4478
|
+
classifyChangelogSection,
|
|
4363
4479
|
classifySessionStatus,
|
|
4364
4480
|
compareDashboardWireVersion,
|
|
4365
4481
|
compareSemver,
|
|
@@ -4476,6 +4592,7 @@ export {
|
|
|
4476
4592
|
isMeshMissionStatusValue,
|
|
4477
4593
|
isMeshP2PSignalType,
|
|
4478
4594
|
isMeshRecordPayload,
|
|
4595
|
+
isMeshReleaseChannel,
|
|
4479
4596
|
isMeshTaskDifficulty,
|
|
4480
4597
|
isMeshTaskMode,
|
|
4481
4598
|
isMeshTaskPriority,
|
|
@@ -4484,6 +4601,7 @@ export {
|
|
|
4484
4601
|
isMeshTopicEntry,
|
|
4485
4602
|
isMessageId,
|
|
4486
4603
|
isMissionOutcome,
|
|
4604
|
+
isMissionRefContained,
|
|
4487
4605
|
isMissionUpsertResponse,
|
|
4488
4606
|
isModelAxisSource,
|
|
4489
4607
|
isNativeMarkerRef,
|
|
@@ -4497,6 +4615,7 @@ export {
|
|
|
4497
4615
|
isRawDaemonDoId,
|
|
4498
4616
|
isReadyStatus,
|
|
4499
4617
|
isRecord,
|
|
4618
|
+
isReleaseStatus,
|
|
4500
4619
|
isSendPolicy,
|
|
4501
4620
|
isSendPolicyMode,
|
|
4502
4621
|
isSendRefusal,
|
|
@@ -4523,6 +4642,7 @@ export {
|
|
|
4523
4642
|
isWorkingStatus,
|
|
4524
4643
|
joinRepoPath,
|
|
4525
4644
|
launchModelSelectionValue,
|
|
4645
|
+
lintChangelogText,
|
|
4526
4646
|
machineCoreFromDaemonId,
|
|
4527
4647
|
makeTypeGuard,
|
|
4528
4648
|
measureWorstCaseChunkEnvelopeBytes,
|