oasis_test_v2 2.2.124 → 2.2.125

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.
Files changed (2) hide show
  1. package/dist/index.js +23 -12
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1674,10 +1674,14 @@ function overlapSimilarity(a5, b6) {
1674
1674
  return shared / Math.sqrt(a5.size * b6.size);
1675
1675
  }
1676
1676
  function overlapScore(query, title, body2) {
1677
- const byTitle = overlapSimilarity(query, overlapTokens(title));
1677
+ const titleTokens = overlapTokens(title);
1678
+ const byTitle = overlapSimilarity(query, titleTokens);
1678
1679
  const byAll = body2 ? overlapSimilarity(query, overlapTokens(`${title}
1679
1680
  ${body2}`)) : byTitle;
1680
- return Math.round(Math.max(byTitle, byAll) * 1e3) / 1e3;
1681
+ let shared = 0;
1682
+ for (const t of titleTokens) if (query.has(t)) shared++;
1683
+ const cover = shared >= COVER_MIN_SHARED ? COVER_WEIGHT * shared / titleTokens.size : 0;
1684
+ return Math.round(Math.max(byTitle, byAll, cover) * 1e3) / 1e3;
1681
1685
  }
1682
1686
  function monthDay(dayOrIso, timeZone) {
1683
1687
  let day = dayOrIso.slice(0, 10);
@@ -1721,7 +1725,7 @@ function formatOverlapLines(r5, timeZone) {
1721
1725
  if (all2.length === 0) return [];
1722
1726
  return [OVERLAP_HEADING, ...all2.map((c5) => formatOverlapCandidate(c5, timeZone)), OVERLAP_LOOKUP_HINT, OVERLAP_HANDLING_HINT];
1723
1727
  }
1724
- var OVERLAP_ACTIONS, STOP_TOKENS, isCjk, OVERLAP_HEADING, OVERLAP_LOOKUP_HINT, OVERLAP_HANDLING_HINT, who;
1728
+ var OVERLAP_ACTIONS, STOP_TOKENS, isCjk, COVER_MIN_SHARED, COVER_WEIGHT, OVERLAP_HEADING, OVERLAP_LOOKUP_HINT, OVERLAP_HANDLING_HINT, who;
1725
1729
  var init_overlap = __esm({
1726
1730
  "../contract/src/overlap.ts"() {
1727
1731
  "use strict";
@@ -1786,6 +1790,8 @@ var init_overlap = __esm({
1786
1790
  "task"
1787
1791
  ]);
1788
1792
  isCjk = (ch) => /[㐀-鿿豈-﫿]/u.test(ch);
1793
+ COVER_MIN_SHARED = 3;
1794
+ COVER_WEIGHT = 0.9;
1789
1795
  OVERLAP_HEADING = "\u76F8\u8FD1\u7684\u4E8B\u9879\uFF08\u7CFB\u7EDF\u7C97\u7B5B\uFF0C\u672A\u786E\u8BA4\uFF0C\u8BF7\u7528 id \u67E5\u8BE6\u60C5\u540E\u5224\u65AD\uFF09\uFF1A";
1790
1796
  OVERLAP_LOOKUP_HINT = "\u67E5\u8BE6\u60C5\uFF1A\u5F85\u529E oasis todo show <\u5F85\u529Eid>\uFF1B\u5DE5\u5355 oasis workorder <\u5DE5\u5355id>\uFF1B\u59D4\u6D3E oasis delegate --status <\u59D4\u6D3Eid>\uFF08\u522B\u4EBA\u5BF9\u8BDD\u91CC\u6D3E\u7684\u4E5F\u80FD\u67E5\u6458\u8981\uFF09";
1791
1797
  OVERLAP_HANDLING_HINT = "\u600E\u4E48\u7528\uFF1A\u9010\u6761\u67E5\u5B8C\u518D\u5224\u65AD\u662F\u4E0D\u662F\u540C\u4E00\u4EF6\u4E8B\uFF1B\u786E\u5B9E\u76F8\u5173\u624D\u544A\u8BC9\u7528\u6237\uFF0C\u4E0D\u76F8\u5173\u4E00\u4E2A\u5B57\u4E0D\u63D0\u3002\u5728\u505A\u7684\u5EFA\u8BAE\u7528\u6237\u5148\u95EE\u95EE\u5BF9\u65B9\uFF0C\u770B\u5408\u5E76\u8FD8\u662F\u5206\u5DE5\uFF1B\u505A\u5B8C\u7684\u628A\u7ED3\u679C\u7ED9\u7528\u6237\uFF0C\u95EE\u80FD\u4E0D\u80FD\u76F4\u63A5\u7528\u3002\u4E0D\u66FF\u7528\u6237\u5408\u5E76\u3001\u53D6\u6D88\u6216\u6539\u6D3E\u3002";
@@ -330036,6 +330042,7 @@ function createTodoRuntime(options) {
330036
330042
  value2 = options.store(id).then((store) => new TodoService({
330037
330043
  store,
330038
330044
  timeZone: () => options.timeZone(id),
330045
+ ...options.now ? { now: options.now } : {},
330039
330046
  ...options.people ? { people: () => options.people(id) } : {},
330040
330047
  ...options.runOf ? { runOf: options.runOf } : {},
330041
330048
  // 派给别人的待办的告知(ADR 0640):与到期提醒同一条路——直接 insert 进台账 `todo` 类,新写的推送 + 刷铃铛。
@@ -330334,7 +330341,7 @@ function createOverlapRuntime(options) {
330334
330341
  const people = await options.people(companyId).catch(() => []);
330335
330342
  for (const p4 of people) if (ids2.includes(p4.actorId)) out[p4.actorId] = p4.name;
330336
330343
  for (const id of ids2) {
330337
- if (out[id] || isHumanActorId(id)) continue;
330344
+ if (out[id]) continue;
330338
330345
  const name = await options.actorName(companyId, id).catch(() => void 0);
330339
330346
  if (name) out[id] = name;
330340
330347
  }
@@ -342713,7 +342720,7 @@ var COMMAND_DECLS = {
342713
342720
  delegate: {
342714
342721
  group: "\u59D4\u6D3E\u4E13\u5BB6",
342715
342722
  usage: 'oasis delegate --to <role|actorId> --task "<\u4EFB\u52A1\u4E66>" [--as <\u77ED\u540D>] [--file <\u8DEF\u5F84>]... [--json true]\n oasis delegate --follow-up <\u5F15\u7528> --text "<...>" [--file <\u8DEF\u5F84>]...\n oasis delegate --status <\u5F15\u7528|\u59D4\u6D3Eid> [--json true]\n oasis delegate --list [--all] [--json true]',
342716
- description: "\u628A\u4E00\u4EF6\u4E8B\u4EA4\u7ED9\u7EC4\u7EC7\u91CC\u5BF9\u53E3\u7684\u4E13\u5BB6\u53BB\u505A\uFF08\u5F02\u6B65\uFF09\u3002\u547D\u4EE4\u7ACB\u5373\u8FD4\u56DE\uFF0C\u4E13\u5BB6\u5E72\u5B8C\u4E86\u7ED3\u679C\u81EA\u5DF1\u56DE\u5230\u8FD9\u6761\u5BF9\u8BDD\u2014\u2014**\u4E0D\u8981\u5728\u8FD9\u91CC\u7B49**\u3002\u6210\u529F\u540E\u5982\u679C\u672C\u516C\u53F8\u6709\u4EBA\u5728\u505A\u6216\u505A\u8FC7\u76F8\u8FD1\u7684\u4E8B\uFF0C\u8F93\u51FA\u672B\u5C3E\u4F1A\u591A\u4E00\u6BB5\u300C\u76F8\u8FD1\u7684\u4E8B\u9879\uFF08\u7CFB\u7EDF\u7C97\u7B5B\uFF0C\u672A\u786E\u8BA4\uFF0C\u8BF7\u7528 id \u67E5\u8BE6\u60C5\u540E\u5224\u65AD\uFF09\u300D\uFF0C\u6BCF\u6761\u5E26 id\uFF1A\u7528 id \u9010\u6761\u67E5\u8BE6\u60C5\uFF08\u5F85\u529E oasis todo show\u3001\u5DE5\u5355 oasis workorder\u3001\u59D4\u6D3E oasis delegate --status\uFF09\uFF0C\u5224\u65AD\u662F\u4E0D\u662F\u540C\u4E00\u4EF6\u4E8B\uFF1B\u786E\u5B9E\u76F8\u5173\u624D\u544A\u8BC9\u7528\u6237\uFF0C\u4E0D\u76F8\u5173\u4E00\u4E2A\u5B57\u90FD\u4E0D\u63D0\uFF1B\u5728\u505A\u7684\u5EFA\u8BAE\u7528\u6237\u5148\u95EE\u95EE\u5BF9\u65B9\uFF0C\u770B\u5408\u5E76\u8FD8\u662F\u5206\u5DE5\uFF1B\u505A\u5B8C\u7684\u628A\u7ED3\u679C\u7ED9\u7528\u6237\uFF0C\u95EE\u80FD\u4E0D\u80FD\u76F4\u63A5\u7528\uFF1B\u4E0D\u66FF\u7528\u6237\u505C\u6389\u8FD9\u6B21\u59D4\u6D3E\u3001\u5408\u5E76\u3001\u53D6\u6D88\u6216\u6539\u6D3E\u3002\u6CA1\u6709\u8FD9\u4E00\u6BB5\u5C31\u662F\u6CA1\u6BD4\u51FA\u6765\uFF0C\u6BD4\u5BF9\u51FA\u4E86\u95EE\u9898\u4E5F\u53EA\u662F\u6CA1\u6709\u8FD9\u4E00\u6BB5\uFF0C\u547D\u4EE4\u7167\u6837\u7B97\u6210\u529F\u3002",
342723
+ description: "\u628A\u4E00\u4EF6\u4E8B\u4EA4\u7ED9\u7EC4\u7EC7\u91CC\u5BF9\u53E3\u7684\u4E13\u5BB6\u53BB\u505A\uFF08\u5F02\u6B65\uFF09\u3002\u547D\u4EE4\u7ACB\u5373\u8FD4\u56DE\uFF0C\u4E13\u5BB6\u5E72\u5B8C\u4E86\u7ED3\u679C\u81EA\u5DF1\u56DE\u5230\u8FD9\u6761\u5BF9\u8BDD\u2014\u2014**\u4E0D\u8981\u5728\u8FD9\u91CC\u7B49**\u3002\u6210\u529F\u540E\u5982\u679C\u672C\u516C\u53F8\u6709\u4EBA\u5728\u505A\u6216\u505A\u8FC7\u76F8\u8FD1\u7684\u4E8B\uFF0C\u8F93\u51FA\u672B\u5C3E\u4F1A\u591A\u4E00\u6BB5\u300C\u76F8\u8FD1\u7684\u4E8B\u9879\uFF08\u7CFB\u7EDF\u7C97\u7B5B\uFF0C\u672A\u786E\u8BA4\uFF0C\u8BF7\u7528 id \u67E5\u8BE6\u60C5\u540E\u5224\u65AD\uFF09\u300D\uFF08--json \u65F6\u5728 overlap \u5B57\u6BB5\u91CC\uFF0C\u540C\u6837\u51E0\u884C\uFF09\uFF0C\u6BCF\u6761\u5E26 id\uFF1A\u7528 id \u9010\u6761\u67E5\u8BE6\u60C5\uFF08\u5F85\u529E oasis todo show\u3001\u5DE5\u5355 oasis workorder\u3001\u59D4\u6D3E oasis delegate --status\uFF09\uFF0C\u5224\u65AD\u662F\u4E0D\u662F\u540C\u4E00\u4EF6\u4E8B\uFF1B\u786E\u5B9E\u76F8\u5173\u624D\u544A\u8BC9\u7528\u6237\uFF0C\u4E0D\u76F8\u5173\u4E00\u4E2A\u5B57\u90FD\u4E0D\u63D0\uFF1B\u5728\u505A\u7684\u5EFA\u8BAE\u7528\u6237\u5148\u95EE\u95EE\u5BF9\u65B9\uFF0C\u770B\u5408\u5E76\u8FD8\u662F\u5206\u5DE5\uFF1B\u505A\u5B8C\u7684\u628A\u7ED3\u679C\u7ED9\u7528\u6237\uFF0C\u95EE\u80FD\u4E0D\u80FD\u76F4\u63A5\u7528\uFF1B\u4E0D\u66FF\u7528\u6237\u505C\u6389\u8FD9\u6B21\u59D4\u6D3E\u3001\u5408\u5E76\u3001\u53D6\u6D88\u6216\u6539\u6D3E\u3002\u6CA1\u6709\u8FD9\u4E00\u6BB5\u5C31\u662F\u6CA1\u6BD4\u51FA\u6765\uFF0C\u6BD4\u5BF9\u51FA\u4E86\u95EE\u9898\u4E5F\u53EA\u662F\u6CA1\u6709\u8FD9\u4E00\u6BB5\uFF0C\u547D\u4EE4\u7167\u6837\u7B97\u6210\u529F\u3002",
342717
342724
  flags: [
342718
342725
  { name: "to", desc: "\u6D3E\u7ED9\u8C01\uFF1A\u5C97\u4F4D\u540D\u6216 actorId\uFF08\u5C97\u4F4D 0 \u4EBA\u5728\u5C97 / \u7ED1\u5B9A\u4E0D\u53EF\u7528\u4F1A\u5F53\u573A\u62A5\u9519\uFF0C\u90A3\u65F6\u81EA\u5DF1\u505A\uFF09" },
342719
342726
  { name: "task", desc: "\u4EFB\u52A1\u4E66\u5168\u6587\u2014\u2014\u4E13\u5BB6**\u552F\u4E00**\u7684\u4E0A\u4E0B\u6587\u6765\u6E90\uFF0C\u5199\u5168\uFF1B\u4E0D\u8BBE\u957F\u5EA6\u4E0A\u9650\u3001\u4E0D\u622A\u65AD" },
@@ -345908,7 +345915,7 @@ async function waitForCommandAuthorization(base, headers, draftId, fallback2) {
345908
345915
  }
345909
345916
  }
345910
345917
  }
345911
- var CLI_VERSION = "2.2.124" ? "2.2.124" : "dev";
345918
+ var CLI_VERSION = "2.2.125" ? "2.2.125" : "dev";
345912
345919
  function apiHeaders(token2, company) {
345913
345920
  const headers = {
345914
345921
  authorization: `Bearer ${token2}`,
@@ -346539,8 +346546,8 @@ async function runCli(argv, println = console.log, progressln = console.error) {
346539
346546
  if (!graph) return;
346540
346547
  for (const line2 of renderGraphLines(graph)) println(line2);
346541
346548
  };
346542
- const printOverlap = async (action, text7, subjectId) => {
346543
- if (!text7.trim()) return;
346549
+ const overlapLines = async (action, text7, subjectId) => {
346550
+ if (!text7.trim()) return [];
346544
346551
  try {
346545
346552
  const chatSessionId = process.env["OASIS_CHAT_SESSION_ID"];
346546
346553
  const r5 = await api.request("POST", "/api/overlap/candidates", {
@@ -346549,11 +346556,14 @@ async function runCli(argv, println = console.log, progressln = console.error) {
346549
346556
  ...subjectId ? { subjectId } : {},
346550
346557
  ...chatSessionId ? { chatSessionId } : {}
346551
346558
  }, { timeoutMs: OVERLAP_TIMEOUT_MS });
346552
- if (!r5?.enabled) return;
346553
- for (const line2 of formatOverlapLines(r5, r5.timeZone)) println(line2);
346559
+ return r5?.enabled ? formatOverlapLines(r5, r5.timeZone) : [];
346554
346560
  } catch {
346561
+ return [];
346555
346562
  }
346556
346563
  };
346564
+ const printOverlap = async (action, text7, subjectId) => {
346565
+ for (const line2 of await overlapLines(action, text7, subjectId)) println(line2);
346566
+ };
346557
346567
  if (process.env["OASIS_STAGE"] === "1" && STAGE_COMMANDS.has(command6)) {
346558
346568
  const op2 = buildStageOp(command6, flags, positional, readFileArg);
346559
346569
  const editWs = flags.get("workspace") ?? process.env["OASIS_WORKSPACE"];
@@ -346711,7 +346721,8 @@ ${round.text}`);
346711
346721
  { to, task, ...flags.get("as") ? { as: flags.get("as") } : {}, ...fileArgs.length ? { files: fileArgs } : {} }
346712
346722
  );
346713
346723
  if (asJson2) {
346714
- println(JSON.stringify(started, null, 2));
346724
+ const overlap = await overlapLines("delegate", task, started.delegationId);
346725
+ println(JSON.stringify({ ...started, ...overlap.length ? { overlap } : {} }, null, 2));
346715
346726
  break;
346716
346727
  }
346717
346728
  println(`\u5DF2\u4EA4\u7ED9 ${to} \u53BB\u505A\uFF08\u5F02\u6B65\uFF0C\u4E0D\u7528\u7B49\uFF09\u3002`);
@@ -350217,7 +350228,7 @@ function shimScript() {
350217
350228
  }
350218
350229
 
350219
350230
  // src/index.ts
350220
- var PKG_VERSION = true ? "2.2.124" : "dev";
350231
+ var PKG_VERSION = true ? "2.2.125" : "dev";
350221
350232
  var LOCAL_BIN = localBin();
350222
350233
  var NPM_PREFIX = npmPrefix();
350223
350234
  var INSTANCE = DEFAULT_INSTANCE;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oasis_test_v2",
3
- "version": "2.2.124",
3
+ "version": "2.2.125",
4
4
  "description": "Oasis node daemon + CLI — background daemon, auto-start, full server CLI",
5
5
  "bin": {
6
6
  "oasis": "./dist/index.js"
@@ -26,6 +26,6 @@
26
26
  "node": ">=20"
27
27
  },
28
28
  "oasisRelease": {
29
- "sourceHead": "c5710727b3d2947957d7afbf0e9ed4392d7589ec"
29
+ "sourceHead": "4bdfa5ddf253053a7ea8d8d6de7444f09b743c96"
30
30
  }
31
31
  }