@wirecat/cli-template 0.9.0 → 0.11.0

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 (119) hide show
  1. package/.github/workflows/ci.yml +18 -0
  2. package/.github/workflows/release.yml +63 -0
  3. package/CHANGELOG.md +72 -1
  4. package/CLAUDE.md +1 -3
  5. package/bin/release +5 -3
  6. package/contracts/help.snap +2 -0
  7. package/dist/bin/clidev.js +34 -12
  8. package/dist/bundle/all-profiles-MJ6XSFOO.js +24 -0
  9. package/dist/bundle/anthropic-W5UKBZUB.js +70 -0
  10. package/dist/bundle/app-server-EZ46JAHB.js +217 -0
  11. package/dist/bundle/bun-HB6O2TTT.js +169 -0
  12. package/dist/bundle/bun-sqlite-KBXOW2ES.js +69 -0
  13. package/dist/bundle/chunk-2B5U4Z5H.js +100 -0
  14. package/dist/bundle/chunk-35KYY65W.js +122 -0
  15. package/dist/bundle/chunk-4LURWBVV.js +752 -0
  16. package/dist/bundle/chunk-5D4AEUVA.js +24783 -0
  17. package/dist/bundle/chunk-7IXL4UFK.js +158 -0
  18. package/dist/bundle/chunk-ADLS6FVG.js +24600 -0
  19. package/dist/bundle/chunk-AK257OMS.js +8353 -0
  20. package/dist/bundle/chunk-CXQXVKUY.js +24 -0
  21. package/dist/bundle/chunk-DFDN6AUB.js +21 -0
  22. package/dist/bundle/chunk-E42W72PQ.js +151 -0
  23. package/dist/bundle/chunk-EFHLQXG6.js +5104 -0
  24. package/dist/bundle/chunk-EGRB55FF.js +264 -0
  25. package/dist/bundle/chunk-ERGB4NJA.js +53 -0
  26. package/dist/bundle/chunk-ERKR3VJ5.js +1146 -0
  27. package/dist/bundle/chunk-FDBINRWA.js +884 -0
  28. package/dist/bundle/chunk-FZZIU4B7.js +34514 -0
  29. package/dist/bundle/chunk-GOO67PDU.js +2 -0
  30. package/dist/bundle/chunk-HDY5X3WQ.js +281 -0
  31. package/dist/bundle/chunk-HTQTIKWP.js +928 -0
  32. package/dist/bundle/chunk-IBBN7Z3A.js +630 -0
  33. package/dist/bundle/chunk-IDWW4TU2.js +18 -0
  34. package/dist/bundle/chunk-IGHEW777.js +164 -0
  35. package/dist/bundle/chunk-IN3FVRPK.js +76 -0
  36. package/dist/bundle/chunk-JAOGZMKQ.js +48 -0
  37. package/dist/bundle/chunk-JHO2LL2J.js +459 -0
  38. package/dist/bundle/chunk-JRK73FOW.js +78 -0
  39. package/dist/bundle/chunk-KAREKBUZ.js +24 -0
  40. package/dist/bundle/chunk-KJTNT4SW.js +82 -0
  41. package/dist/bundle/chunk-L5WWMP5M.js +1904 -0
  42. package/dist/bundle/chunk-MFS52LTZ.js +570 -0
  43. package/dist/bundle/chunk-MJRSEUKG.js +442 -0
  44. package/dist/bundle/chunk-MUSYGFCY.js +3556 -0
  45. package/dist/bundle/chunk-N2Z3MCOF.js +779 -0
  46. package/dist/bundle/chunk-NOVLCHDV.js +45 -0
  47. package/dist/bundle/chunk-O3UXNU3S.js +54 -0
  48. package/dist/bundle/chunk-O5EHUB2V.js +2 -0
  49. package/dist/bundle/chunk-OV6PHTAY.js +36226 -0
  50. package/dist/bundle/chunk-PBN4RBHS.js +2315 -0
  51. package/dist/bundle/chunk-PDGXMKJS.js +31 -0
  52. package/dist/bundle/chunk-PJOVK7PG.js +191 -0
  53. package/dist/bundle/chunk-QBP7OMN5.js +58 -0
  54. package/dist/bundle/chunk-QJ6XW4DM.js +7556 -0
  55. package/dist/bundle/chunk-QKWRL4OD.js +1028 -0
  56. package/dist/bundle/chunk-RUKDZEID.js +73 -0
  57. package/dist/bundle/chunk-SVDF6NJF.js +215 -0
  58. package/dist/bundle/chunk-TAYOKLGF.js +193 -0
  59. package/dist/bundle/chunk-TGB5F7NC.js +288 -0
  60. package/dist/bundle/chunk-V3ZTQ24B.js +161 -0
  61. package/dist/bundle/chunk-VLNKTMV7.js +3103 -0
  62. package/dist/bundle/chunk-VYSUKHKL.js +63 -0
  63. package/dist/bundle/chunk-Y5E2WNWB.js +35 -0
  64. package/dist/bundle/chunk-YJNUDHJD.js +3390 -0
  65. package/dist/bundle/chunk-Z7MSIRSQ.js +6848 -0
  66. package/dist/bundle/chunk-ZLY6GUAS.js +82 -0
  67. package/dist/bundle/chunk-ZVVMGPBJ.js +50 -0
  68. package/dist/bundle/clidev.js +22 -0
  69. package/dist/bundle/command-contract-75VJ36U4.js +29 -0
  70. package/dist/bundle/decode-AMXUVKNY.js +158 -0
  71. package/dist/bundle/dist-ESHIQU4M.js +7577 -0
  72. package/dist/bundle/echarts-GJDMQ2AQ.js +42501 -0
  73. package/dist/bundle/embed-L4CRZ2XQ.js +35 -0
  74. package/dist/bundle/embedder-IBGV4M2K.js +108 -0
  75. package/dist/bundle/first-run-VTKC2IBV.js +23 -0
  76. package/dist/bundle/first-screen-X5IJKBSU.js +27 -0
  77. package/dist/bundle/instructions-YJECS4KN.js +11 -0
  78. package/dist/bundle/mcp-G6XP2IRO.js +151 -0
  79. package/dist/bundle/mcp-OQBZXELQ.js +165 -0
  80. package/dist/bundle/mcp-RDZGYPSY.js +78 -0
  81. package/dist/bundle/node-NQG4EVZR.js +176 -0
  82. package/dist/bundle/node-P4E63KXA.js +2340 -0
  83. package/dist/bundle/node-TLZSIHIJ.js +21 -0
  84. package/dist/bundle/node-sqlite-BR7F3BLB.js +61 -0
  85. package/dist/bundle/oauth-J7UAWNIK.js +17 -0
  86. package/dist/bundle/open-BR47R5UE.js +19 -0
  87. package/dist/bundle/process-66I7RDPJ.js +91 -0
  88. package/dist/bundle/program-K6347XBZ.js +17279 -0
  89. package/dist/bundle/prompt-NE5JJ7UP.js +12 -0
  90. package/dist/bundle/recognize-GC3YFVIA.js +21 -0
  91. package/dist/bundle/remote-QELOMKQM.js +26 -0
  92. package/dist/bundle/rerank-BH6TZ2SP.js +49 -0
  93. package/dist/bundle/serve-WWLRNDT2.js +19 -0
  94. package/dist/bundle/server-DE6NLNUF.js +52 -0
  95. package/dist/bundle/server-ZPSQKOAH.js +39 -0
  96. package/dist/bundle/state-2BEGXAMO.js +33 -0
  97. package/dist/bundle/store-AH6WZMCF.js +120 -0
  98. package/dist/bundle/store-maintenance-command-PBXX3IEV.js +40 -0
  99. package/dist/version.d.ts +1 -1
  100. package/dist/version.d.ts.map +1 -1
  101. package/dist/version.js +1 -1
  102. package/dist/version.js.map +1 -1
  103. package/docs/commands.md +9 -13
  104. package/docs/dev/TESTING.md +10 -0
  105. package/docs/dev/reference-clis.md +7 -5
  106. package/docs/dev/skills/release/SKILL.md +15 -8
  107. package/docs/dev/skills/release/fresh-audit.md +4 -0
  108. package/docs/dev/test-matrix.md +1 -1
  109. package/kit/dist/new.js +1 -0
  110. package/package.json +8 -5
  111. package/scripts/audit.sh +14 -3
  112. package/scripts/smoke-bundle.ts +64 -0
  113. package/scripts/smoke.ts +18 -0
  114. package/scripts/test-matrix-untested.ts +1 -1
  115. package/scripts/version-level.test.ts +17 -1
  116. package/scripts/version-level.ts +35 -7
  117. package/skills/clidev-cli/SKILL.md +8 -0
  118. package/src/version.ts +1 -1
  119. package/lint/baseline/unknown-verb.json +0 -1
@@ -0,0 +1,12 @@
1
+ import { createRequire as __bundleRequire } from "node:module";
2
+ const require = __bundleRequire(import.meta.url);
3
+ import {
4
+ readSecret
5
+ } from "./chunk-ZLY6GUAS.js";
6
+ import "./chunk-KJTNT4SW.js";
7
+ import "./chunk-EFHLQXG6.js";
8
+ import "./chunk-Y5E2WNWB.js";
9
+ import "./chunk-ZVVMGPBJ.js";
10
+ export {
11
+ readSecret
12
+ };
@@ -0,0 +1,21 @@
1
+ import { createRequire as __bundleRequire } from "node:module";
2
+ const require = __bundleRequire(import.meta.url);
3
+ import {
4
+ SAMPLE_RATE,
5
+ decodeOgg,
6
+ detector,
7
+ loadSherpa,
8
+ openRecognizer,
9
+ toModelRate
10
+ } from "./chunk-PJOVK7PG.js";
11
+ import "./chunk-EFHLQXG6.js";
12
+ import "./chunk-Y5E2WNWB.js";
13
+ import "./chunk-ZVVMGPBJ.js";
14
+ export {
15
+ SAMPLE_RATE,
16
+ decodeOgg,
17
+ detector,
18
+ loadSherpa,
19
+ openRecognizer,
20
+ toModelRate
21
+ };
@@ -0,0 +1,26 @@
1
+ import { createRequire as __bundleRequire } from "node:module";
2
+ const require = __bundleRequire(import.meta.url);
3
+ import {
4
+ DEFAULT_OPENAI_MODEL,
5
+ OPENAI_MODELS,
6
+ OPENAI_URL,
7
+ isLocal,
8
+ openRemote,
9
+ remoteKey,
10
+ remoteModel
11
+ } from "./chunk-35KYY65W.js";
12
+ import "./chunk-QKWRL4OD.js";
13
+ import "./chunk-EGRB55FF.js";
14
+ import "./chunk-IDWW4TU2.js";
15
+ import "./chunk-EFHLQXG6.js";
16
+ import "./chunk-Y5E2WNWB.js";
17
+ import "./chunk-ZVVMGPBJ.js";
18
+ export {
19
+ DEFAULT_OPENAI_MODEL,
20
+ OPENAI_MODELS,
21
+ OPENAI_URL,
22
+ isLocal,
23
+ openRemote,
24
+ remoteKey,
25
+ remoteModel
26
+ };
@@ -0,0 +1,49 @@
1
+ import { createRequire as __bundleRequire } from "node:module";
2
+ const require = __bundleRequire(import.meta.url);
3
+ import {
4
+ defaultThreads,
5
+ loadModel,
6
+ truncated
7
+ } from "./chunk-QKWRL4OD.js";
8
+ import "./chunk-EGRB55FF.js";
9
+ import "./chunk-IDWW4TU2.js";
10
+ import "./chunk-EFHLQXG6.js";
11
+ import "./chunk-Y5E2WNWB.js";
12
+ import {
13
+ __name
14
+ } from "./chunk-ZVVMGPBJ.js";
15
+
16
+ // node_modules/.pnpm/@wirecat+cli-core@0.495.0_@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_type_24cca5e5c8b0984f2f26e7d1ba6b6d47/node_modules/@wirecat/cli-core/dist/embeddings/rerank.js
17
+ var openReranker = /* @__PURE__ */ __name(async (model, directory, { threads = defaultThreads() } = {}) => {
18
+ const { ort, tokenizer, session } = await loadModel(model, directory, threads);
19
+ const typeIds = session.inputNames.includes("token_type_ids");
20
+ const output = session.outputNames[0];
21
+ const one = /* @__PURE__ */ __name(async (question, passage) => {
22
+ const encoded = tokenizer.encode(question, { text_pair: passage, return_token_type_ids: true });
23
+ const ids = truncated(encoded.ids, model.maxTokens);
24
+ const shape = [1, ids.length];
25
+ const feeds = {
26
+ input_ids: new ort.Tensor("int64", BigInt64Array.from(ids, BigInt), shape),
27
+ attention_mask: new ort.Tensor("int64", new BigInt64Array(ids.length).fill(1n), shape)
28
+ };
29
+ if (typeIds)
30
+ feeds.token_type_ids = new ort.Tensor("int64", BigInt64Array.from(truncated(encoded.token_type_ids, model.maxTokens), BigInt), shape);
31
+ const logit = (await session.run(feeds))[output]?.data[0];
32
+ if (typeof logit !== "number" || !Number.isFinite(logit))
33
+ throw new Error(`${model.id} gave no score`);
34
+ return logit;
35
+ }, "one");
36
+ return {
37
+ model,
38
+ score: /* @__PURE__ */ __name(async (question, passages) => {
39
+ const scores = [];
40
+ for (const passage of passages)
41
+ scores.push(await one(question, passage));
42
+ return scores;
43
+ }, "score"),
44
+ close: /* @__PURE__ */ __name(() => session.release(), "close")
45
+ };
46
+ }, "openReranker");
47
+ export {
48
+ openReranker
49
+ };
@@ -0,0 +1,19 @@
1
+ import { createRequire as __bundleRequire } from "node:module";
2
+ const require = __bundleRequire(import.meta.url);
3
+ import {
4
+ MCP_PATH,
5
+ serveOverHttp
6
+ } from "./chunk-TAYOKLGF.js";
7
+ import "./chunk-JRK73FOW.js";
8
+ import "./chunk-TGB5F7NC.js";
9
+ import "./chunk-5D4AEUVA.js";
10
+ import "./chunk-V3ZTQ24B.js";
11
+ import "./chunk-RUKDZEID.js";
12
+ import "./chunk-VYSUKHKL.js";
13
+ import "./chunk-EFHLQXG6.js";
14
+ import "./chunk-Y5E2WNWB.js";
15
+ import "./chunk-ZVVMGPBJ.js";
16
+ export {
17
+ MCP_PATH,
18
+ serveOverHttp
19
+ };
@@ -0,0 +1,52 @@
1
+ import { createRequire as __bundleRequire } from "node:module";
2
+ const require = __bundleRequire(import.meta.url);
3
+ import {
4
+ PER_RUN,
5
+ createServer,
6
+ envelope,
7
+ serveOverHttpUntilStopped,
8
+ serveOverStdio
9
+ } from "./chunk-N2Z3MCOF.js";
10
+ import "./chunk-ERKR3VJ5.js";
11
+ import "./chunk-JAOGZMKQ.js";
12
+ import "./chunk-IN3FVRPK.js";
13
+ import "./chunk-YJNUDHJD.js";
14
+ import "./chunk-4LURWBVV.js";
15
+ import "./chunk-IBBN7Z3A.js";
16
+ import "./chunk-L5WWMP5M.js";
17
+ import "./chunk-FZZIU4B7.js";
18
+ import "./chunk-KJTNT4SW.js";
19
+ import "./chunk-E42W72PQ.js";
20
+ import "./chunk-MFS52LTZ.js";
21
+ import "./chunk-ERGB4NJA.js";
22
+ import "./chunk-5D4AEUVA.js";
23
+ import "./chunk-V3ZTQ24B.js";
24
+ import "./chunk-RUKDZEID.js";
25
+ import "./chunk-OV6PHTAY.js";
26
+ import "./chunk-PBN4RBHS.js";
27
+ import "./chunk-35KYY65W.js";
28
+ import "./chunk-NOVLCHDV.js";
29
+ import "./chunk-IGHEW777.js";
30
+ import "./chunk-MUSYGFCY.js";
31
+ import "./chunk-QJ6XW4DM.js";
32
+ import "./chunk-MJRSEUKG.js";
33
+ import "./chunk-O3UXNU3S.js";
34
+ import "./chunk-VYSUKHKL.js";
35
+ import "./chunk-VLNKTMV7.js";
36
+ import "./chunk-O5EHUB2V.js";
37
+ import "./chunk-FDBINRWA.js";
38
+ import "./chunk-QKWRL4OD.js";
39
+ import "./chunk-EGRB55FF.js";
40
+ import "./chunk-IDWW4TU2.js";
41
+ import "./chunk-2B5U4Z5H.js";
42
+ import "./chunk-EFHLQXG6.js";
43
+ import "./chunk-Y5E2WNWB.js";
44
+ import "./chunk-Z7MSIRSQ.js";
45
+ import "./chunk-ZVVMGPBJ.js";
46
+ export {
47
+ PER_RUN,
48
+ createServer,
49
+ envelope,
50
+ serveOverHttpUntilStopped,
51
+ serveOverStdio
52
+ };
@@ -0,0 +1,39 @@
1
+ import { createRequire as __bundleRequire } from "node:module";
2
+ const require = __bundleRequire(import.meta.url);
3
+ import {
4
+ createBotServer,
5
+ serveBotOverStdio
6
+ } from "./chunk-7IXL4UFK.js";
7
+ import "./chunk-CXQXVKUY.js";
8
+ import "./chunk-YJNUDHJD.js";
9
+ import "./chunk-4LURWBVV.js";
10
+ import "./chunk-IBBN7Z3A.js";
11
+ import "./chunk-FZZIU4B7.js";
12
+ import "./chunk-KJTNT4SW.js";
13
+ import "./chunk-E42W72PQ.js";
14
+ import "./chunk-MFS52LTZ.js";
15
+ import "./chunk-5D4AEUVA.js";
16
+ import "./chunk-OV6PHTAY.js";
17
+ import "./chunk-PBN4RBHS.js";
18
+ import "./chunk-35KYY65W.js";
19
+ import "./chunk-NOVLCHDV.js";
20
+ import "./chunk-MUSYGFCY.js";
21
+ import "./chunk-QJ6XW4DM.js";
22
+ import "./chunk-MJRSEUKG.js";
23
+ import "./chunk-O3UXNU3S.js";
24
+ import "./chunk-VYSUKHKL.js";
25
+ import "./chunk-VLNKTMV7.js";
26
+ import "./chunk-O5EHUB2V.js";
27
+ import "./chunk-FDBINRWA.js";
28
+ import "./chunk-QKWRL4OD.js";
29
+ import "./chunk-EGRB55FF.js";
30
+ import "./chunk-IDWW4TU2.js";
31
+ import "./chunk-2B5U4Z5H.js";
32
+ import "./chunk-EFHLQXG6.js";
33
+ import "./chunk-Y5E2WNWB.js";
34
+ import "./chunk-Z7MSIRSQ.js";
35
+ import "./chunk-ZVVMGPBJ.js";
36
+ export {
37
+ createBotServer,
38
+ serveBotOverStdio
39
+ };
@@ -0,0 +1,33 @@
1
+ import { createRequire as __bundleRequire } from "node:module";
2
+ const require = __bundleRequire(import.meta.url);
3
+ import {
4
+ ACCESS_SECONDS,
5
+ REFRESH_SECONDS,
6
+ httpLaunchFile,
7
+ httpLock,
8
+ httpLockFile,
9
+ httpLogFile,
10
+ mcpHttpMarker,
11
+ readHttpLaunch,
12
+ readHttpLock,
13
+ readStored,
14
+ signedInClients
15
+ } from "./chunk-V3ZTQ24B.js";
16
+ import "./chunk-RUKDZEID.js";
17
+ import "./chunk-VYSUKHKL.js";
18
+ import "./chunk-EFHLQXG6.js";
19
+ import "./chunk-Y5E2WNWB.js";
20
+ import "./chunk-ZVVMGPBJ.js";
21
+ export {
22
+ ACCESS_SECONDS,
23
+ REFRESH_SECONDS,
24
+ httpLaunchFile,
25
+ httpLock,
26
+ httpLockFile,
27
+ httpLogFile,
28
+ mcpHttpMarker,
29
+ readHttpLaunch,
30
+ readHttpLock,
31
+ readStored,
32
+ signedInClients
33
+ };
@@ -0,0 +1,120 @@
1
+ import { createRequire as __bundleRequire } from "node:module";
2
+ const require = __bundleRequire(import.meta.url);
3
+ import {
4
+ AGENDA_COLUMNS,
5
+ BACKFILL_ON_OPEN,
6
+ CHAT_COLUMNS,
7
+ CHAT_LIST_KEY,
8
+ CONVERSATION_COLUMNS,
9
+ DEFAULT_AGENT_CLOSE,
10
+ DEFAULT_FIRST_PASS_PER_CHAT,
11
+ MENTION_QUERY,
12
+ MENTION_STATUSES,
13
+ OTHER_SOURCES,
14
+ TRACKED_CHAT_COLUMNS,
15
+ accountGroupsOf,
16
+ attachmentColumns,
17
+ drainNoteIndex,
18
+ dropAllUnusedVectors,
19
+ fetchedKey,
20
+ fileFacts,
21
+ fillSearchIndex,
22
+ fillStems,
23
+ firstPassPerChatOf,
24
+ historyStartKey,
25
+ inboxKey,
26
+ involvementStoreOver,
27
+ messageOfEmail,
28
+ noteIndexState,
29
+ openSqlite,
30
+ openStore,
31
+ orphanPointers,
32
+ pendingNormalization,
33
+ queryFilter,
34
+ readStoreTables,
35
+ registerProvider,
36
+ resetAttachmentWords,
37
+ resetNoteIndex,
38
+ resetSearchIndex,
39
+ resetStems,
40
+ rowCounts,
41
+ saveStorePhoneCountries,
42
+ savedAgentClose,
43
+ savedFirstPassPerChat,
44
+ savedPhoneCountries,
45
+ savedStemmers,
46
+ savedTaskCategories,
47
+ searchIndexState,
48
+ stemmerCache,
49
+ stemmersOrigin,
50
+ stemsState,
51
+ storeClients,
52
+ storeContents,
53
+ threadConversation,
54
+ titlePart,
55
+ vectorIndexCounts
56
+ } from "./chunk-OV6PHTAY.js";
57
+ import "./chunk-PBN4RBHS.js";
58
+ import "./chunk-VLNKTMV7.js";
59
+ import "./chunk-O5EHUB2V.js";
60
+ import "./chunk-FDBINRWA.js";
61
+ import "./chunk-IDWW4TU2.js";
62
+ import "./chunk-2B5U4Z5H.js";
63
+ import "./chunk-EFHLQXG6.js";
64
+ import "./chunk-Y5E2WNWB.js";
65
+ import "./chunk-Z7MSIRSQ.js";
66
+ import "./chunk-ZVVMGPBJ.js";
67
+ export {
68
+ AGENDA_COLUMNS,
69
+ BACKFILL_ON_OPEN,
70
+ CHAT_COLUMNS,
71
+ CHAT_LIST_KEY,
72
+ CONVERSATION_COLUMNS,
73
+ DEFAULT_AGENT_CLOSE,
74
+ DEFAULT_FIRST_PASS_PER_CHAT,
75
+ MENTION_QUERY,
76
+ MENTION_STATUSES,
77
+ OTHER_SOURCES,
78
+ TRACKED_CHAT_COLUMNS,
79
+ accountGroupsOf,
80
+ attachmentColumns,
81
+ drainNoteIndex,
82
+ dropAllUnusedVectors,
83
+ fetchedKey,
84
+ fileFacts,
85
+ fillSearchIndex,
86
+ fillStems,
87
+ firstPassPerChatOf,
88
+ historyStartKey,
89
+ inboxKey,
90
+ involvementStoreOver,
91
+ messageOfEmail,
92
+ noteIndexState,
93
+ openSqlite,
94
+ openStore,
95
+ orphanPointers,
96
+ pendingNormalization,
97
+ queryFilter,
98
+ readStoreTables,
99
+ registerProvider,
100
+ resetAttachmentWords,
101
+ resetNoteIndex,
102
+ resetSearchIndex,
103
+ resetStems,
104
+ rowCounts,
105
+ saveStorePhoneCountries,
106
+ savedAgentClose,
107
+ savedFirstPassPerChat,
108
+ savedPhoneCountries,
109
+ savedStemmers,
110
+ savedTaskCategories,
111
+ searchIndexState,
112
+ stemmerCache,
113
+ stemmersOrigin,
114
+ stemsState,
115
+ storeClients,
116
+ storeContents,
117
+ threadConversation,
118
+ titlePart,
119
+ vectorIndexCounts
120
+ };
@@ -0,0 +1,40 @@
1
+ import { createRequire as __bundleRequire } from "node:module";
2
+ const require = __bundleRequire(import.meta.url);
3
+ import {
4
+ buildStems,
5
+ storeMaintenanceCommands,
6
+ storeSummary
7
+ } from "./chunk-AK257OMS.js";
8
+ import "./chunk-L5WWMP5M.js";
9
+ import "./chunk-FZZIU4B7.js";
10
+ import "./chunk-ZLY6GUAS.js";
11
+ import "./chunk-KJTNT4SW.js";
12
+ import "./chunk-HTQTIKWP.js";
13
+ import "./chunk-E42W72PQ.js";
14
+ import "./chunk-MFS52LTZ.js";
15
+ import "./chunk-RUKDZEID.js";
16
+ import "./chunk-OV6PHTAY.js";
17
+ import "./chunk-PBN4RBHS.js";
18
+ import "./chunk-35KYY65W.js";
19
+ import "./chunk-PDGXMKJS.js";
20
+ import "./chunk-NOVLCHDV.js";
21
+ import "./chunk-QJ6XW4DM.js";
22
+ import "./chunk-MJRSEUKG.js";
23
+ import "./chunk-O3UXNU3S.js";
24
+ import "./chunk-VYSUKHKL.js";
25
+ import "./chunk-VLNKTMV7.js";
26
+ import "./chunk-O5EHUB2V.js";
27
+ import "./chunk-FDBINRWA.js";
28
+ import "./chunk-QKWRL4OD.js";
29
+ import "./chunk-EGRB55FF.js";
30
+ import "./chunk-IDWW4TU2.js";
31
+ import "./chunk-2B5U4Z5H.js";
32
+ import "./chunk-EFHLQXG6.js";
33
+ import "./chunk-Y5E2WNWB.js";
34
+ import "./chunk-Z7MSIRSQ.js";
35
+ import "./chunk-ZVVMGPBJ.js";
36
+ export {
37
+ buildStems,
38
+ storeMaintenanceCommands,
39
+ storeSummary
40
+ };
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.9.0";
1
+ export declare const VERSION = "0.11.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAA"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAA"}
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.9.0";
1
+ export const VERSION = "0.11.0";
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAA"}
package/docs/commands.md CHANGED
@@ -29,8 +29,8 @@ lists the profiles on this computer.
29
29
  | `--full` | found items with their whole text and every provider field. |
30
30
  | `--dry-run` | preview parsed arguments and permissions before running the action. |
31
31
  | `--yes` | go ahead without the question an ask level puts before a write. |
32
- | `--record` | keep this run, with the command as typed and secrets hidden; record_input false leaves the typed words out. |
33
- | `--no-record` | do not keep it, whatever the configuration says. |
32
+ | `--record` | keep this run even where the config says record false; record_input false leaves the typed words out. |
33
+ | `--no-record` | do not keep this run, even if it fails. |
34
34
 
35
35
  ## `clidev commands`
36
36
 
@@ -70,23 +70,19 @@ the instructions an agent is given for this tool
70
70
 
71
71
  ### `clidev skill show`
72
72
 
73
- print SKILL.md — `clidev skill install` puts it where Claude Code, Codex and Gemini CLI look for it; --for prints the copy already there
73
+ print SKILL.md — `clidev skill install` puts it where Claude Code, Codex, Gemini CLI and OpenClaw look for it, and where Hermes does on request; --for prints the copy already there
74
74
 
75
75
  ```sh
76
- clidev skill show [name] [options]
76
+ clidev skill show [options]
77
77
  ```
78
78
 
79
- | Argument | | What it is |
80
- |---|---|---|
81
- | `name` | optional | one of the skills shipped for a task: follow-ups, link-conversations. |
82
-
83
79
  | Option | What it does |
84
80
  |---|---|
85
81
  | `--for <agents>` | print the copy installed for these agents instead of this version's. One of: `claude`, `agents`. |
86
82
 
87
83
  **Returns:** print the tool's instructions for AI agents
88
84
 
89
- **Example:** `clidev skill show`, `clidev skill show follow-ups`
85
+ **Example:** `clidev skill show`
90
86
 
91
87
  ### `clidev skill install`
92
88
 
@@ -255,7 +251,7 @@ clidev config set <setting> <value> [options]
255
251
 
256
252
  | Argument | | What it is |
257
253
  |---|---|---|
258
- | `setting` | required | one of: limit, timeout_ms, color, record, record_input, keep_runs_for_days, permissions, sends_per_hour, requests_per_minute, transcribe_with, speech_model, search_catch_up, picture_search, search_reranker, embedding_provider, embedding_model, embedding_base_url, embedding_dims, models, read_other_bots, update_check, skill_hint, search_stemmers.cyrillic, search_stemmers.latin, phone_countries, task_categories.<name>, task_agent_close, task_agent_close_min, task_first_pass_per_chat, account_groups.<name>. |
254
+ | `setting` | required | one of: limit, timeout_ms, color, record, record_input, keep_runs_for_days, keep_successful_runs_for_days, runs_size_limit_mb, permissions, requests_per_minute, speech_model, picture_search, search_reranker, embedding_provider, embedding_model, embedding_base_url, embedding_dims, models, update_check, skill_hint, search_stemmers.cyrillic, search_stemmers.latin. |
259
255
  | `value` | required | a number, true or false; for a group tg:work,max:Alice,email:me@x. |
260
256
 
261
257
  | Option | What it does |
@@ -280,7 +276,7 @@ clidev config unset <setting> [options]
280
276
 
281
277
  | Argument | | What it is |
282
278
  |---|---|---|
283
- | `setting` | required | one of: limit, timeout_ms, color, record, record_input, keep_runs_for_days, permissions, sends_per_hour, requests_per_minute, transcribe_with, speech_model, search_catch_up, picture_search, search_reranker, embedding_provider, embedding_model, embedding_base_url, embedding_dims, models, read_other_bots, update_check, skill_hint, search_stemmers.cyrillic, search_stemmers.latin, phone_countries, task_categories.<name>, task_agent_close, task_agent_close_min, task_first_pass_per_chat, account_groups.<name>. |
279
+ | `setting` | required | one of: limit, timeout_ms, color, record, record_input, keep_runs_for_days, keep_successful_runs_for_days, runs_size_limit_mb, permissions, requests_per_minute, speech_model, picture_search, search_reranker, embedding_provider, embedding_model, embedding_base_url, embedding_dims, models, update_check, skill_hint, search_stemmers.cyrillic, search_stemmers.latin. |
284
280
 
285
281
  | Option | What it does |
286
282
  |---|---|
@@ -313,7 +309,7 @@ clidev runs list [query] [options]
313
309
  | `--limit <n>` | how many to show. Default: `20`. |
314
310
  | `--page <n>` | which page, starting at 1. Default: `1`. |
315
311
 
316
- **Returns:** run — run_id, command, started_at, status, cli_version, profile, completed_at, requests, and 20 more; every field: clidev commands info runs list
312
+ **Returns:** run — run_id, command, started_at, status, cli_version, profile, completed_at, requests, and 23 more; every field: clidev commands info runs list
317
313
 
318
314
  **Example:** `clidev personal runs list --limit 10`
319
315
 
@@ -333,7 +329,7 @@ clidev runs show <run-id> [options]
333
329
  |---|---|
334
330
  | `--problems` | only failed responses, warnings and crashes. |
335
331
 
336
- **Returns:** run details — run_id, command, started_at, status, cli_version, directory, event_count, events, and 19 more; every field: clidev commands info runs show
332
+ **Returns:** run details — run_id, command, started_at, status, cli_version, directory, event_count, events, and 22 more; every field: clidev commands info runs show
337
333
 
338
334
  **Example:** `clidev personal runs show run-101`
339
335
 
@@ -7,6 +7,8 @@ How the tests run, and what they never touch. The rules are the handbook's
7
7
  keyring that throws and no network, and points this CLI's config, state, cache and the shared store into that
8
8
  folder. `src/testing/sandbox.ts` names the config folder, which tests write into by name.
9
9
  - `pnpm test:coverage` adds the coverage floor in `vitest.config.ts`.
10
+ - `pnpm test:slow` lists the 20 slowest tests and the 10 slowest files. No test waits for real time (`WC-TEST-5`):
11
+ waits go through an injected sleep, and `fakeClock()` from `@wirecat/cli-base/testing` records them.
10
12
  - Each run logs the command lines the tests drove (`coverage/argv.jsonl`). `pnpm test:matrix` turns that log into
11
13
  [test-matrix.md](test-matrix.md); a command or option no test drives needs a reason in
12
14
  `scripts/test-matrix-untested.ts`.
@@ -20,3 +22,11 @@ How the tests run, and what they never touch. The rules are the handbook's
20
22
  [drive-cli does](https://github.com/WireCatLabs/drive-cli/blob/150b105569a98fbd0d4b66349305ad84128adfda/package.json#L37), and remove the skip.
21
23
  - `pnpm smoke` installs the packed package into a temporary folder and runs it offline.
22
24
  - `pnpm audit:commands` audits the command tree beside the latest published WireCat CLIs.
25
+
26
+ ## The bundle a user installs
27
+
28
+ `pnpm build` compiles `src/` with `tsc`, then cli-base's `cli-dev bundle`
29
+ ([WC-LAY-10](https://github.com/WireCatLabs/cli-base/blob/main/docs/standards/layout.md))
30
+ bundles `dist/bin/clidev.js` into `dist/bundle/` and makes the bin a loader. The vitest suite runs
31
+ against `src/`, so `scripts/smoke-bundle.ts` is the proof the bundle works: `pnpm smoke:node` runs it
32
+ under Node and `pnpm smoke:bun` under Bun, both in CI.
@@ -7,13 +7,14 @@ the first question of the [design interview](skills/design-interview/SKILL.md):
7
7
  | --- | --- |
8
8
  | messenger | [whatsapp-cli](https://github.com/WireCatLabs/whatsapp-cli), then [tg-cli](https://github.com/WireCatLabs/tg-cli) and [max-cli](https://github.com/WireCatLabs/max-cli) |
9
9
  | files and documents | [drive-cli](https://github.com/WireCatLabs/drive-cli) |
10
+ | calendar | [gcal-cli](https://github.com/WireCatLabs/gcal-cli) |
10
11
  | meetings | [zoom-cli](https://github.com/WireCatLabs/zoom-cli) |
11
12
  | notes | [cli-memo](https://github.com/WireCatLabs/cli-memo) |
12
- | mail, calendar, other | none of its own yet: pick the nearest one with the owner. cli-memo [imports mail](https://github.com/WireCatLabs/cli-memo/blob/c2d21254ab360aed7149a3250d17e879283aa603/docs/mail.md) |
13
+ | mail, other | none of its own yet: pick the nearest one with the owner. cli-memo [imports mail](https://github.com/WireCatLabs/cli-memo/blob/c2d21254ab360aed7149a3250d17e879283aa603/docs/mail.md) |
13
14
 
14
15
  A messenger CLI sets `messenger: true` in `src/identity.ts`, and `new --category messenger` writes it. Every other
15
16
  category keeps the template's `messenger: false`, so the shared help and `commands` do not speak of chats, messages
16
- and senders. `config` still lists cli-core's messenger settings, such as `sends_per_hour` and `read_other_bots`.
17
+ and senders, and `config` lists none of cli-core's messenger settings.
17
18
 
18
19
  cli-core keeps a provider registry (WC-ARCH-21). A CLI whose provider is not built into cli-core writes its entry on
19
20
  every run that opens the shared store: `await store.accounts.registerProvider({ name, kind, aliases, command })`, on the
@@ -21,10 +22,11 @@ store that `openStore` from `@wirecat/cli-core/store` returns
21
22
  ([`AccountsStore`](https://github.com/WireCatLabs/cli-core/blob/185718d3212cda9bb026e09809760979fe31a1e6/src/store/accounts.ts#L40-L41),
22
23
  cli-core 0.459.0). `@wirecat/cli-core/store` does not export a `registerProvider` function. `kind` is one of
23
24
  `messages`, `mail`, `notes`, `documents`, `meetings` or `events`. Until the CLI has run once on a computer, `search`
24
- there leaves its accounts out and lists them under `skipped`. Of the reference CLIs, none makes this call: cli-core
25
- already knows their providers, from its
25
+ there leaves its accounts out and lists them under `skipped`. Of the reference CLIs, only gcal-cli makes this call: cli-core
26
+ already knows the others' providers, from its
26
27
  [seed list](https://github.com/WireCatLabs/cli-core/blob/185718d3212cda9bb026e09809760979fe31a1e6/src/domain/providers.ts#L17-L29)
27
28
  and, for Drive, its
28
29
  [document providers](https://github.com/WireCatLabs/cli-core/blob/185718d3212cda9bb026e09809760979fe31a1e6/src/domain/providers.ts#L50).
29
- [gcal-cli](https://github.com/WireCatLabs/gcal-cli/blob/14e27c45e6dc204cde8adcd9e4fa6aa069745335/src/store.ts) does. The skeleton opens no store and
30
+ [gcal-cli](https://github.com/WireCatLabs/gcal-cli/blob/14e27c45e6dc204cde8adcd9e4fa6aa069745335/src/store.ts) registers
31
+ its own. The skeleton opens no store and
30
32
  has no provider, so it registers nothing; the call comes with the CLI's first store code.
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: release
3
- description: Prepare a release of this CLI for the owner to publish — run release:check, write the changelog under the handbook's headings, check the docs against what changed, raise the version in a pull request; the owner runs bin/release. Use when asked to release, prepare a release, cut a version, «выпуск», «выпустить версию».
3
+ description: Release this CLI — run release:check, write the changelog under the handbook's headings, check the docs against what changed, raise the version in a pull request, merge it and publish with bin/release from GitHub Actions. Use when asked to release, prepare a release, cut a version, «выпуск», «выпустить версию».
4
4
  ---
5
5
 
6
6
  # Release
7
7
 
8
8
  The rules are the handbook's [Releases page](../../../../node_modules/@wirecat/cli-base/docs/standards/releases.md)
9
- (`WC-REL-<n>`), which wins over this skill. An agent prepares the release; the owner merges the release pull request
10
- and runs `bin/release`.
9
+ (`WC-REL-<n>`), which wins over this skill. An agent prepares the release, merges the release pull request and runs
10
+ `bin/release`, which publishes from GitHub Actions. Only the first release is the owner's, from this computer.
11
11
 
12
12
  1. **What changed.** In a worktree off `origin/main`: `git log --oneline "$(git describe --tags --abbrev=0 origin/main)..origin/main"`. The
13
13
  `docs/commands.md` diff shows what a cli-core or cli-base release changed in the commands.
@@ -17,17 +17,24 @@ and runs `bin/release`.
17
17
  `Changed — may break callers`, `Fixed`, `Security`, `Removed` (`WC-DOC-14` to `WC-DOC-18`). No internal ids.
18
18
  4. **The docs.** `README.md`, `docs/*.md` and `skills/clidev-cli/SKILL.md` state what the code does now (`WC-DOC-3`).
19
19
  `pnpm generate` and `pnpm test:matrix` rewrite the generated pages (`WC-DOC-4`).
20
- 5. **The fresh audit.** Start a new subagent that has none of your context, and give it the prompt in
20
+ 5. **The comparison page.** Re-prove each ✅, 🟡 and ❌ this CLI has on its comparison page against the release build
21
+ (`WC-CMP-11`): the site copy in cli-docs, `translations/pages/clidev/compare.en.md` and its `.ru.md` and `.es.md`,
22
+ or this repository's `docs/compare.md` where it keeps one. Update the check date and version in the intro, in the
23
+ site repository, and name the page in the release pull request.
24
+ 6. **The fresh audit.** Start a new subagent that has none of your context, and give it the prompt in
21
25
  [fresh-audit.md](fresh-audit.md) as written. Put its report in the release pull request. Fix each gap in this
22
26
  repository there, or list it as a follow-up; take a gap in the handbook to cli-base.
23
- 6. **The version.** `npm view @wirecat/clidev-cli version` is what is published. The changelog picks the level, and
27
+ 7. **The version.** `npm view @wirecat/clidev-cli version` is what is published. The changelog picks the level, and
24
28
  before `1.0.0` this narrows `WC-REL-7`: a section with `Changed — may break callers` or `Removed` raises the minor
25
29
  (`0.1.8` to `0.2.0`), and so does one with `Added`; only a section of `Fixed`, `Security` or docs raises the patch.
26
30
  From `1.0.0`, a breaking change raises the major. `pnpm version:check` refuses a dated section whose number is
27
- raised less than its headings need. Set the next version in `package.json`, run `pnpm version:sync`, date the
31
+ raised less than its headings need, and when `bin/release` moves to the next free number on npm it raises that
32
+ number to the level the headings need. Set the next version in `package.json`, run `pnpm version:sync`, date the
28
33
  section as `## <version> — DD.MM.YYYY`, run `pnpm release:check` again, and open the pull request
29
34
  `chore(release): <version>`.
30
- 7. **The owner** merges it and runs `bin/release` on a clean `main`. `bin/release --local` publishes from this
31
- computer when GitHub Actions cannot, with `NPM_TOKEN`, the npm token in the keyring, or the owner's own npm login.
35
+ 8. **The publish.** Merge it when its checks pass, then run `bin/release` on a clean `main`: it starts
36
+ `release.yml` and follows it (`WC-REL-11`). A messenger CLI also needs the owner's signed release report
37
+ (`WC-REL-10`). Never `bin/release --local`: that is the owner's, for the first release before npm trusts
38
+ `release.yml`, with `NPM_TOKEN`, the npm token in the keyring, or the owner's own npm login.
32
39
  The keyring is read only when `NPM_KEYRING_ACCOUNT` names the account the token is stored under (service `npm`);
33
40
  there is no default account. When that lookup fails, `bin/release` stops; it does not fall back to the npm login.
@@ -9,6 +9,10 @@ You audit a WireCat CLI repository, in the current folder. Use only three source
9
9
  `node_modules/@wirecat/cli-base/docs/standards/README.md`, the repository itself, and the cli-base workflow files its
10
10
  own workflows pin (WC-CI-8). Do not read plans, journals or earlier reviews. Run `pnpm install` first if `node_modules` is missing.
11
11
 
12
+ Never use the owner's accounts. Do not sign in, and run the built CLI only with every config, state and cache folder
13
+ moved to a temporary folder and `DBUS_SESSION_BUS_ADDRESS=disabled:`, so it cannot reach the system keyring (removing
14
+ the variable is not enough). Run no command that writes to a service: no `--yes`, no `api` call that changes data.
15
+
12
16
  Check the repository against every handbook page that applies to it: the code, the docs, the configs and the
13
17
  workflows. You may run the package scripts. Change nothing.
14
18
 
@@ -27,7 +27,7 @@ Measured from the test run (`coverage/argv.jsonl`), not searched for — see
27
27
  | `mcp server start` | | ⛔ | starts a detached `mcp serve --http` from the built entry; cli-core tests mcpServerCommand, and the background run was checked by hand against dist/ |
28
28
  | `mcp server start` | `--port` | ⛔ | starts a detached `mcp serve --http` from the built entry; cli-core tests mcpServerCommand, and the background run was checked by hand against dist/ |
29
29
  | `mcp server start` | `--public-url` | ⛔ | starts a detached `mcp serve --http` from the built entry; cli-core tests mcpServerCommand, and the background run was checked by hand against dist/ |
30
- | `mcp server stop` | | ⛔ | starts a detached `mcp serve --http` from the built entry; cli-core tests mcpServerCommand, and the background run was checked by hand against dist/ |
30
+ | `mcp server stop` | | ⛔ | stops the detached server that `mcp server start` wrote a pid file for; cli-core tests mcpServerCommand, and no live scenario starts a server to stop |
31
31
  | `mcp server status` | | ✅ | |
32
32
  | `upgrade` | | ✅ | |
33
33
  | `upgrade` | `--check` | ✅ | |
package/kit/dist/new.js CHANGED
@@ -10,6 +10,7 @@ const run = promisify(execFile);
10
10
  const REFERENCES = {
11
11
  messenger: ["whatsapp-cli", "tg-cli", "max-cli"],
12
12
  files: ["drive-cli"],
13
+ calendar: ["gcal-cli"],
13
14
  meetings: ["zoom-cli"],
14
15
  notes: ["cli-memo"],
15
16
  };