@clawos-dev/clawd 0.2.307 → 0.2.309

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/cli.cjs CHANGED
@@ -6828,7 +6828,7 @@ var init_principal = __esm({
6828
6828
  });
6829
6829
 
6830
6830
  // ../protocol/src/schemas.ts
6831
- var SessionStatusSchema, UsageSchema, ContextUsageSchema, sessionMetaShape, SessionMetaSchema, SelectOptionSchema, ModelInfoSchema, ModeInfoSchema, ConfigFieldSchemaSchema, CapabilitiesGetArgs, ToolFeaturesSchema, CapabilitiesResponseSchema, AllowRuleSchema, SessionFileSchema, ParsedEventBase, HistoryUserMetaSchema, SubagentToolStatsSchema, StructuredPatchHunkSchema, ToolResultExtraSchema, MemoryEntrySchema, AskQuestionOptionSchema, AskQuestionItemSchema, ParsedEventSchema, SessionCreateArgs, SessionImportExternalArgs, SessionListArgs, SessionIdArgs, SessionUpdateArgs, SessionSendArgs, SessionInterruptArgs, SessionRewindArgs, SessionRewindResponseSchema, SessionRewindDiffArgs, RewindDiffHunkSchema, RewindDiffFileSchema, SessionRewindDiffResponseSchema, SessionRewindableMessageIdsArgs, SessionRewindableMessageIdsResponseSchema, SessionResumeArgs, SessionForkArgs, SessionForkResponseSchema, SessionObserveArgs, SessionEventsArgs, PermissionRespondArgs, HistoryListArgs, HistoryReadArgs, HistorySubagentsArgs, HistorySubagentReadArgs, WorkspaceListArgs, WorkspaceReadArgs, SkillsListArgs, SkillEntrySchema, AgentEntrySchema, AgentsListArgs, AgentsListResponseSchema, SessionCurrentTurnSenderArgs, SessionSubscribeArgs, SessionPinArgs, PeerSessionUpsertArgs, PeerSessionUpsertResponseSchema, PeerSessionRemoveArgs, PeerSessionRemoveResponseSchema, SessionReorderPinsArgs, GitRootArgs, GitRootResponseSchema, GitBranchArgs, GitBranchResponseSchema, GitBranchesArgs, GitBranchesResponseSchema, HistoryRecentDirsArgs, RecentDirEntrySchema, HistoryRecentDirsResponseSchema, SessionQuestionFrameSchema, SessionQuestionClearedFrameSchema, AnswerQuestionArgs, AnswerQuestionResponseSchema, CancelQuestionArgs, CancelQuestionResponseSchema, ClientInfoSchema, AuthRequestFrameSchema, AuthOkFrameSchema, DeviceConnectionEntrySchema, DeviceConnectionsResponseSchema, TunnelReadyEventSchema, TunnelExitedEventSchema, TunnelUnavailableEventSchema, InfoRunningSessionSchema, InfoResponseSchema, PROJECT_PORT_MIN, PROJECT_PORT_MAX, projectNameRegex, DEFAULT_DEV_COMMAND, ProjectMetadataSchema, PROJECT_STAGE_VALUES, ProjectStageSchema, ProjectWithStatusSchema, ListProjectsArgsSchema, ListProjectsResultSchema, GetProjectArgsSchema, GetProjectResultSchema, CreateProjectArgsSchema, CreateProjectResultSchema, DeleteProjectArgsSchema, DeleteProjectResultSchema, UpdateProjectPortArgsSchema, UpdateProjectPortResultSchema, SetProdUrlArgsSchema, SetProdUrlResultSchema, StartDevServerArgsSchema, StartDevServerResultSchema, ASSISTANT_REPORTABLE_STAGES, ReportStageArgsSchema, ReportStageResultSchema, StopDevServerArgsSchema, StopDevServerResultSchema, AppBuilderProjectUpdatedEventSchema, PublishArgsSchema, PublishResultSchema, DismissPublishJobArgsSchema, DismissPublishJobResultSchema, AppBuilderPublishProgressEventSchema, AppBuilderPublishFailedEventSchema;
6831
+ var SessionStatusSchema, UsageSchema, ContextUsageSchema, sessionMetaShape, SessionMetaSchema, SelectOptionSchema, ModelInfoSchema, ModeInfoSchema, ConfigFieldSchemaSchema, CapabilitiesGetArgs, ToolFeaturesSchema, CapabilitiesResponseSchema, AllowRuleSchema, SessionFileSchema, ParsedEventBase, HistoryUserMetaSchema, SubagentToolStatsSchema, StructuredPatchHunkSchema, ToolResultExtraSchema, MemoryEntrySchema, AskQuestionOptionSchema, AskQuestionItemSchema, ParsedEventSchema, SessionCreateArgs, SessionImportExternalArgs, SessionListArgs, SessionIdArgs, SessionUpdateArgs, SessionSendArgs, SessionInterruptArgs, SessionRewindArgs, SessionRewindResponseSchema, SessionRewindDiffArgs, RewindDiffHunkSchema, RewindDiffFileSchema, SessionRewindDiffResponseSchema, SessionRewindableMessageIdsArgs, SessionRewindableMessageIdsResponseSchema, SessionResumeArgs, SessionForkArgs, SessionForkResponseSchema, SessionObserveArgs, SessionEventsArgs, PermissionRespondArgs, HistoryListArgs, HistoryReadArgs, HistorySubagentsArgs, HistorySubagentReadArgs, WorkspaceListArgs, WorkspaceReadArgs, SkillsListArgs, SkillEntrySchema, AgentEntrySchema, AgentsListArgs, AgentsListResponseSchema, SessionCurrentTurnSenderArgs, SessionSubscribeArgs, SessionPinArgs, SessionArchiveArgs, PeerSessionUpsertArgs, PeerSessionUpsertResponseSchema, PeerSessionRemoveArgs, PeerSessionRemoveResponseSchema, SessionReorderPinsArgs, GitRootArgs, GitRootResponseSchema, GitBranchArgs, GitBranchResponseSchema, GitBranchesArgs, GitBranchesResponseSchema, HistoryRecentDirsArgs, RecentDirEntrySchema, HistoryRecentDirsResponseSchema, SessionQuestionFrameSchema, SessionQuestionClearedFrameSchema, AnswerQuestionArgs, AnswerQuestionResponseSchema, CancelQuestionArgs, CancelQuestionResponseSchema, ClientInfoSchema, AuthRequestFrameSchema, AuthOkFrameSchema, DeviceConnectionEntrySchema, DeviceConnectionsResponseSchema, TunnelReadyEventSchema, TunnelExitedEventSchema, TunnelUnavailableEventSchema, InfoRunningSessionSchema, InfoResponseSchema, PROJECT_PORT_MIN, PROJECT_PORT_MAX, projectNameRegex, DEFAULT_DEV_COMMAND, ProjectMetadataSchema, PROJECT_STAGE_VALUES, ProjectStageSchema, ProjectWithStatusSchema, ListProjectsArgsSchema, ListProjectsResultSchema, GetProjectArgsSchema, GetProjectResultSchema, CreateProjectArgsSchema, CreateProjectResultSchema, DeleteProjectArgsSchema, DeleteProjectResultSchema, UpdateProjectPortArgsSchema, UpdateProjectPortResultSchema, SetProdUrlArgsSchema, SetProdUrlResultSchema, StartDevServerArgsSchema, StartDevServerResultSchema, ASSISTANT_REPORTABLE_STAGES, ReportStageArgsSchema, ReportStageResultSchema, StopDevServerArgsSchema, StopDevServerResultSchema, AppBuilderProjectUpdatedEventSchema, PublishArgsSchema, PublishResultSchema, DismissPublishJobArgsSchema, DismissPublishJobResultSchema, AppBuilderPublishProgressEventSchema, AppBuilderPublishFailedEventSchema;
6832
6832
  var init_schemas = __esm({
6833
6833
  "../protocol/src/schemas.ts"() {
6834
6834
  "use strict";
@@ -6929,6 +6929,10 @@ var init_schemas = __esm({
6929
6929
  permissionRules: external_exports.array(AllowRuleSchema).optional(),
6930
6930
  // Sidebar 置顶时间戳;null/undefined 表示未置顶
6931
6931
  pinnedAt: external_exports.number().int().nonnegative().nullable().optional(),
6932
+ // 归档时间戳(spec 2026-08-10-session-archive-about-page);null/undefined 表示未归档。
6933
+ // marker 语义:不 bump updatedAt(与 pinnedAt 同款)。session:archive 归档时 daemon
6934
+ // 在同一次落盘里原子清 pinnedAt;取消归档不恢复置顶。
6935
+ archivedAt: external_exports.number().int().nonnegative().nullable().optional(),
6932
6936
  // pinned 行手动拖拽顺序;越小越靠前。session:reorderPins 整体重写所有 pinned 的此字段。
6933
6937
  // 缺失时 view-state 排序回退到 pinnedAt desc(旧数据兼容)
6934
6938
  pinSortOrder: external_exports.number().int().nullable().optional(),
@@ -7495,6 +7499,10 @@ var init_schemas = __esm({
7495
7499
  sessionId: external_exports.string().min(1),
7496
7500
  pinned: external_exports.boolean()
7497
7501
  });
7502
+ SessionArchiveArgs = external_exports.object({
7503
+ sessionId: external_exports.string().min(1),
7504
+ archived: external_exports.boolean()
7505
+ });
7498
7506
  PeerSessionUpsertArgs = SessionFileSchema;
7499
7507
  PeerSessionUpsertResponseSchema = external_exports.object({
7500
7508
  type: external_exports.literal("peerSession:upsert:ok")
@@ -7965,6 +7973,10 @@ var init_methods = __esm({
7965
7973
  summary: "\u7F6E\u9876 / \u53D6\u6D88\u7F6E\u9876\u4F1A\u8BDD",
7966
7974
  args: SessionPinArgs
7967
7975
  },
7976
+ "session:archive": {
7977
+ summary: "\u5F52\u6863 / \u53D6\u6D88\u5F52\u6863\u4F1A\u8BDD\uFF08\u5F52\u6863 = \u5168\u5C40\u6536\u7EB3\u6001\uFF1A\u9000\u51FA sidebar\u3001\u539F\u5B50\u6E05 pinnedAt\uFF09",
7978
+ args: SessionArchiveArgs
7979
+ },
7968
7980
  "session:markRead": {
7969
7981
  summary: "\u6E05\u6389\u4F1A\u8BDD\u7684\u5171\u4EAB\u672A\u8BFB\u6807\u8BB0\u5E76\u5E7F\u64AD session:info\uFF1B\u5E42\u7B49",
7970
7982
  args: SessionIdArgs
@@ -44535,7 +44547,7 @@ var RUNTIME_PATCH_KEYS = [
44535
44547
  "effort",
44536
44548
  "cwd"
44537
44549
  ];
44538
- var MARKER_PATCH_KEYS = ["pinnedAt", "pinSortOrder", "unreadAt"];
44550
+ var MARKER_PATCH_KEYS = ["pinnedAt", "pinSortOrder", "unreadAt", "archivedAt"];
44539
44551
  function isMarkerOnlyPatch(patch) {
44540
44552
  const keys = Object.keys(patch).filter(
44541
44553
  (k2) => patch[k2] !== void 0
@@ -46192,6 +46204,30 @@ var SessionManager = class {
46192
46204
  this.writeOwned(updated);
46193
46205
  return { response: updated, broadcast: [] };
46194
46206
  }
46207
+ // 归档 / 取消归档(spec 2026-08-10-session-archive-about-page)。与 pin 的两点差异:
46208
+ // 归档在同一 patch 里原子清 pinnedAt(取消归档不恢复);no-runner 路径也广播
46209
+ // session:info——跨窗口实时剔除 sidebar 是本 RPC 的核心语义(对齐 markRead 而非 pin)。
46210
+ archive(args) {
46211
+ const existing = this.getFile(args.sessionId);
46212
+ const archivedAt = args.archived ? (this.deps.now ?? Date.now)() : null;
46213
+ const patch = args.archived ? { archivedAt, pinnedAt: null } : { archivedAt };
46214
+ const runner = this.runners.get(args.sessionId);
46215
+ if (runner) {
46216
+ const { value, broadcast } = this.withCollector(() => {
46217
+ runner.input({ kind: "command", command: { kind: "update", patch } });
46218
+ return runner.getState().file;
46219
+ });
46220
+ return { response: value, broadcast };
46221
+ }
46222
+ const updated = { ...existing, ...patch };
46223
+ this.writeOwned(updated);
46224
+ return {
46225
+ response: updated,
46226
+ broadcast: [
46227
+ { frame: { type: "session:info", ...updated }, target: "all" }
46228
+ ]
46229
+ };
46230
+ }
46195
46231
  // 清共享未读(spec 2026-07-20-shared-session-unread)。幂等:已读直接 no-op 不广播。
46196
46232
  // 与 pin 的差异:no-runner 路径也要广播 session:info——跨端实时清红点是本 RPC 的核心
46197
46233
  // 语义,不能等下次 session:list。
@@ -57910,6 +57946,12 @@ function buildSessionHandlers(deps) {
57910
57946
  const { response, broadcast } = manager.pin(args);
57911
57947
  return { response: { type: "session:info", ...response }, broadcast };
57912
57948
  };
57949
+ const archive = async (frame, _client, ctx) => {
57950
+ const args = SessionArchiveArgs.parse(frame);
57951
+ ensureSessionAccess(ctx, args.sessionId, "send");
57952
+ const { response, broadcast } = manager.archive(args);
57953
+ return { response: { type: "session:info", ...response }, broadcast };
57954
+ };
57913
57955
  const markRead = async (frame, _client, ctx) => {
57914
57956
  const args = SessionIdArgs.parse(frame);
57915
57957
  ensureSessionAccess(ctx, args.sessionId, "send");
@@ -58032,6 +58074,7 @@ function buildSessionHandlers(deps) {
58032
58074
  "session:subscribe": subscribe,
58033
58075
  "session:unsubscribe": unsubscribe,
58034
58076
  "session:pin": pin,
58077
+ "session:archive": archive,
58035
58078
  "session:markRead": markRead,
58036
58079
  "session:reorderPins": reorderPins,
58037
58080
  "session:answerQuestion": answerQuestion,
@@ -59137,6 +59180,7 @@ var METHOD_GRANT_MAP = {
59137
59180
  "session:subscribe": CAPABILITY_SCOPED,
59138
59181
  "session:unsubscribe": CAPABILITY_SCOPED,
59139
59182
  "session:pin": CAPABILITY_SCOPED,
59183
+ "session:archive": CAPABILITY_SCOPED,
59140
59184
  "session:markRead": CAPABILITY_SCOPED,
59141
59185
  "session:reorderPins": ADMIN_ANY,
59142
59186
  // owner 全局操作,无 personaId 维度
@@ -59312,7 +59356,7 @@ function computeMethodAccess(args) {
59312
59356
  }
59313
59357
 
59314
59358
  // src/version.ts
59315
- var version = "0.2.307".length > 0 ? "0.2.307" : "dev";
59359
+ var version = "0.2.309".length > 0 ? "0.2.309" : "dev";
59316
59360
 
59317
59361
  // src/cli-probe/probe.ts
59318
59362
  var fs56 = __toESM(require("fs"), 1);
@@ -22073,6 +22073,10 @@ var SessionFileSchema = external_exports.object({
22073
22073
  permissionRules: external_exports.array(AllowRuleSchema).optional(),
22074
22074
  // Sidebar 置顶时间戳;null/undefined 表示未置顶
22075
22075
  pinnedAt: external_exports.number().int().nonnegative().nullable().optional(),
22076
+ // 归档时间戳(spec 2026-08-10-session-archive-about-page);null/undefined 表示未归档。
22077
+ // marker 语义:不 bump updatedAt(与 pinnedAt 同款)。session:archive 归档时 daemon
22078
+ // 在同一次落盘里原子清 pinnedAt;取消归档不恢复置顶。
22079
+ archivedAt: external_exports.number().int().nonnegative().nullable().optional(),
22076
22080
  // pinned 行手动拖拽顺序;越小越靠前。session:reorderPins 整体重写所有 pinned 的此字段。
22077
22081
  // 缺失时 view-state 排序回退到 pinnedAt desc(旧数据兼容)
22078
22082
  pinSortOrder: external_exports.number().int().nullable().optional(),
@@ -22639,6 +22643,10 @@ var SessionPinArgs = external_exports.object({
22639
22643
  sessionId: external_exports.string().min(1),
22640
22644
  pinned: external_exports.boolean()
22641
22645
  });
22646
+ var SessionArchiveArgs = external_exports.object({
22647
+ sessionId: external_exports.string().min(1),
22648
+ archived: external_exports.boolean()
22649
+ });
22642
22650
  var PeerSessionUpsertArgs = SessionFileSchema;
22643
22651
  var PeerSessionUpsertResponseSchema = external_exports.object({
22644
22652
  type: external_exports.literal("peerSession:upsert:ok")
@@ -23071,6 +23079,10 @@ var METHOD_DOCS = {
23071
23079
  summary: "\u7F6E\u9876 / \u53D6\u6D88\u7F6E\u9876\u4F1A\u8BDD",
23072
23080
  args: SessionPinArgs
23073
23081
  },
23082
+ "session:archive": {
23083
+ summary: "\u5F52\u6863 / \u53D6\u6D88\u5F52\u6863\u4F1A\u8BDD\uFF08\u5F52\u6863 = \u5168\u5C40\u6536\u7EB3\u6001\uFF1A\u9000\u51FA sidebar\u3001\u539F\u5B50\u6E05 pinnedAt\uFF09",
23084
+ args: SessionArchiveArgs
23085
+ },
23074
23086
  "session:markRead": {
23075
23087
  summary: "\u6E05\u6389\u4F1A\u8BDD\u7684\u5171\u4EAB\u672A\u8BFB\u6807\u8BB0\u5E76\u5E7F\u64AD session:info\uFF1B\u5E42\u7B49",
23076
23088
  args: SessionIdArgs