@wirecat/cli-template 0.13.2 → 0.14.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.
- package/.github/workflows/changelog-guard.yml +1 -1
- package/.github/workflows/ci.yml +1 -1
- package/.github/workflows/monthly.yml +1 -1
- package/.github/workflows/release.yml +1 -1
- package/CHANGELOG.md +25 -0
- package/config/parity-groups.json +32 -1
- package/contracts/mcp-tools.json +100 -0
- package/dist/bin/clidev.js +6 -2
- package/dist/bundle/{all-profiles-MJ6XSFOO.js → all-profiles-NVB2HT2S.js} +6 -6
- package/dist/bundle/{anthropic-W5UKBZUB.js → anthropic-ICTW7CNQ.js} +4 -4
- package/dist/bundle/{app-server-EZ46JAHB.js → app-server-B6BCKXR7.js} +40 -38
- package/dist/bundle/{bun-HB6O2TTT.js → bun-ILPS6AYA.js} +2 -2
- package/dist/bundle/{bun-sqlite-KBXOW2ES.js → bun-sqlite-JE6FJFQT.js} +3 -3
- package/dist/bundle/{chunk-KJTNT4SW.js → chunk-2DAXUNTS.js} +2 -2
- package/dist/bundle/chunk-3MDNAYQA.js +34 -0
- package/dist/bundle/chunk-3WDYHOAF.js +91 -0
- package/dist/bundle/{chunk-EGRB55FF.js → chunk-45244QQ6.js} +14 -12
- package/dist/bundle/{chunk-JHO2LL2J.js → chunk-4PA6DJ7F.js} +7 -7
- package/dist/bundle/{chunk-FZZIU4B7.js → chunk-5SAF3XOL.js} +8196 -5601
- package/dist/bundle/chunk-62JRF2JA.js +35 -0
- package/dist/bundle/{chunk-TGB5F7NC.js → chunk-66VMJGV6.js} +4 -4
- package/dist/bundle/{chunk-V3ZTQ24B.js → chunk-6AW4DDK4.js} +4 -4
- package/dist/bundle/{chunk-PJOVK7PG.js → chunk-7F5VMLVK.js} +49 -24
- package/dist/bundle/{chunk-MFS52LTZ.js → chunk-7Z4HR6GO.js} +1 -1
- package/dist/bundle/{chunk-E42W72PQ.js → chunk-AS2PJNQ2.js} +7 -5
- package/dist/bundle/{chunk-SVDF6NJF.js → chunk-ASHVHS52.js} +14 -14
- package/dist/bundle/{chunk-N2Z3MCOF.js → chunk-BEBD27QT.js} +37 -35
- package/dist/bundle/{chunk-IGHEW777.js → chunk-BM5ZCDPQ.js} +5 -40
- package/dist/bundle/{chunk-AK257OMS.js → chunk-BVLPNNEL.js} +209 -78
- package/dist/bundle/{chunk-ERKR3VJ5.js → chunk-BWBZCYUN.js} +141 -46
- package/dist/bundle/{chunk-Z7MSIRSQ.js → chunk-CGFQT3LQ.js} +1 -1
- package/dist/bundle/{chunk-QKWRL4OD.js → chunk-DQIBGCF3.js} +6 -6
- package/dist/bundle/{chunk-RUKDZEID.js → chunk-DZLHY4IA.js} +3 -3
- package/dist/bundle/{chunk-TAYOKLGF.js → chunk-EMHCXXNJ.js} +7 -6
- package/dist/bundle/{chunk-IBBN7Z3A.js → chunk-F34HGYWF.js} +12 -3
- package/dist/bundle/{chunk-ERGB4NJA.js → chunk-G45R7M42.js} +1 -1
- package/dist/bundle/{chunk-ZLY6GUAS.js → chunk-G7W53MQP.js} +3 -3
- package/dist/bundle/{chunk-JAOGZMKQ.js → chunk-GUFPQZUA.js} +2 -2
- package/dist/bundle/{chunk-4LURWBVV.js → chunk-HYTHTSJP.js} +188 -22
- package/dist/bundle/{chunk-EFHLQXG6.js → chunk-IOJ2DTCY.js} +162 -55
- package/dist/bundle/{chunk-L5WWMP5M.js → chunk-IZKXJJ7V.js} +121 -31
- package/dist/bundle/{chunk-NOVLCHDV.js → chunk-LATYBJ4T.js} +2 -2
- package/dist/bundle/{chunk-QBP7OMN5.js → chunk-LFLSV353.js} +2 -2
- package/dist/bundle/{chunk-HDY5X3WQ.js → chunk-LU4A2T7Y.js} +4 -4
- package/dist/bundle/{chunk-JRK73FOW.js → chunk-NENYWEXF.js} +1 -1
- package/dist/bundle/{chunk-2B5U4Z5H.js → chunk-NH6LZ3H3.js} +8 -13
- package/dist/bundle/{chunk-OV6PHTAY.js → chunk-NVNUUHT5.js} +17130 -2232
- package/dist/bundle/chunk-PIJUGF5F.js +392 -0
- package/dist/bundle/{chunk-7IXL4UFK.js → chunk-PX2KP4QE.js} +8 -8
- package/dist/bundle/{chunk-KRCCGWWS.js → chunk-QXOSPYM3.js} +1 -1
- package/dist/bundle/{chunk-PBN4RBHS.js → chunk-R2JKPHH5.js} +8 -8
- package/dist/bundle/{chunk-PDGXMKJS.js → chunk-R5RYPD23.js} +2 -2
- package/dist/bundle/{chunk-QJ6XW4DM.js → chunk-RJ7AS7UB.js} +6210 -1207
- package/dist/bundle/{chunk-35KYY65W.js → chunk-SOYOOU2D.js} +3 -3
- package/dist/bundle/{chunk-FDBINRWA.js → chunk-TJJ2XSJP.js} +5 -5
- package/dist/bundle/{chunk-O3UXNU3S.js → chunk-U6QD3J3F.js} +3 -3
- package/dist/bundle/{chunk-YJNUDHJD.js → chunk-UT5TQ6MD.js} +139 -35
- package/dist/bundle/{chunk-VYSUKHKL.js → chunk-VOTEB3AN.js} +1 -1
- package/dist/bundle/{chunk-IN3FVRPK.js → chunk-VS5LGSTM.js} +1 -1
- package/dist/bundle/{chunk-MJRSEUKG.js → chunk-VXOR76ZL.js} +13 -89
- package/dist/bundle/{chunk-CXQXVKUY.js → chunk-YIVY2WI3.js} +1 -1
- package/dist/bundle/{chunk-VLNKTMV7.js → chunk-YOJLIVGO.js} +959 -350
- package/dist/bundle/clidev.js +3 -3
- package/dist/bundle/command-contract-JMVMT5HT.js +28 -0
- package/dist/bundle/{decode-AMXUVKNY.js → decode-NXB5UKMO.js} +18 -16
- package/dist/bundle/{echarts-GJDMQ2AQ.js → echarts-DRDGGHJT.js} +2 -2
- package/dist/bundle/{embed-L4CRZ2XQ.js → embed-IKZ24BMC.js} +4 -4
- package/dist/bundle/{embedder-IBGV4M2K.js → embedder-GMQ24DOQ.js} +7 -7
- package/dist/bundle/{first-run-VTKC2IBV.js → first-run-MDD4SIUK.js} +8 -8
- package/dist/bundle/first-screen-376CXGXJ.js +26 -0
- package/dist/bundle/{instructions-YJECS4KN.js → instructions-EOQOXY6V.js} +1 -1
- package/dist/bundle/{mcp-OQBZXELQ.js → mcp-7HBLFGCW.js} +2 -2
- package/dist/bundle/mcp-KHUZOJO6.js +82 -0
- package/dist/bundle/{mcp-GBSAK3VW.js → mcp-MZHWJXAE.js} +38 -37
- package/dist/bundle/{node-NQG4EVZR.js → node-52WF2326.js} +2 -2
- package/dist/bundle/{node-sqlite-BR7F3BLB.js → node-sqlite-73Z4SFOA.js} +9 -3
- package/dist/bundle/{oauth-J7UAWNIK.js → oauth-EVTPAMZP.js} +5 -5
- package/dist/bundle/{open-BR47R5UE.js → open-46WZAPJ3.js} +3 -2
- package/dist/bundle/openai-GWRDAHDU.js +248 -0
- package/dist/bundle/{process-66I7RDPJ.js → process-YIQPKLZI.js} +1 -1
- package/dist/bundle/{program-EM4FKOCK.js → program-B3CY3FP7.js} +11346 -9559
- package/dist/bundle/{prompt-NE5JJ7UP.js → prompt-IVEYRLS5.js} +3 -3
- package/dist/bundle/{recognize-GC3YFVIA.js → recognize-WVEKHODM.js} +4 -2
- package/dist/bundle/{remote-QELOMKQM.js → remote-4K5VPMC7.js} +5 -5
- package/dist/bundle/{rerank-BH6TZ2SP.js → rerank-V24UJZYJ.js} +5 -5
- package/dist/bundle/{serve-WWLRNDT2.js → serve-PJWSOV7F.js} +7 -7
- package/dist/bundle/server-2ZN7KZHZ.js +40 -0
- package/dist/bundle/server-5VYM7CCF.js +53 -0
- package/dist/bundle/{state-2BEGXAMO.js → state-ZPYGECVP.js} +4 -4
- package/dist/bundle/{store-AH6WZMCF.js → store-6JQCLPQF.js} +14 -9
- package/dist/bundle/store-maintenance-command-7XICIYHW.js +42 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/commands.md +37 -11
- package/docs/dev/reference-clis.md +1 -1
- package/docs/dev/skills/design-interview/SKILL.md +2 -2
- package/docs/dev/test-matrix.md +5 -1
- package/kit/dist/interview.js +1 -0
- package/kit/dist/new.js +8 -3
- package/package.json +3 -3
- package/src/program.test.ts +56 -0
- package/src/version.ts +1 -1
- package/dist/bundle/chunk-IDWW4TU2.js +0 -18
- package/dist/bundle/chunk-MUSYGFCY.js +0 -3556
- package/dist/bundle/chunk-O5EHUB2V.js +0 -2
- package/dist/bundle/command-contract-75VJ36U4.js +0 -29
- package/dist/bundle/first-screen-X5IJKBSU.js +0 -27
- package/dist/bundle/mcp-RDZGYPSY.js +0 -78
- package/dist/bundle/server-DE6NLNUF.js +0 -52
- package/dist/bundle/server-ZPSQKOAH.js +0 -39
- package/dist/bundle/store-maintenance-command-PBXX3IEV.js +0 -40
- /package/dist/bundle/{chunk-GOO67PDU.js → chunk-NL2DQPT7.js} +0 -0
|
@@ -2,15 +2,15 @@ import { createRequire as __bundleRequire } from "node:module";
|
|
|
2
2
|
const require = __bundleRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
unit
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-DQIBGCF3.js";
|
|
6
6
|
import {
|
|
7
7
|
CliError
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-IOJ2DTCY.js";
|
|
9
9
|
import {
|
|
10
10
|
__name
|
|
11
11
|
} from "./chunk-ZVVMGPBJ.js";
|
|
12
12
|
|
|
13
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
13
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.584.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ab8c0b68b8b4768d5b87d6e249ef10da/node_modules/@wirecat/cli-core/dist/embeddings/remote.js
|
|
14
14
|
import { setTimeout } from "node:timers/promises";
|
|
15
15
|
var OPENAI_URL = "https://api.openai.com/v1";
|
|
16
16
|
var OPENAI_MODELS = {
|
|
@@ -2,21 +2,21 @@ import { createRequire as __bundleRequire } from "node:module";
|
|
|
2
2
|
const require = __bundleRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
storePath
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-62JRF2JA.js";
|
|
6
6
|
import {
|
|
7
7
|
CliError,
|
|
8
8
|
resolvePaths,
|
|
9
9
|
singleLine
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-IOJ2DTCY.js";
|
|
11
11
|
import {
|
|
12
12
|
__name
|
|
13
13
|
} from "./chunk-ZVVMGPBJ.js";
|
|
14
14
|
|
|
15
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
15
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.584.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ab8c0b68b8b4768d5b87d6e249ef10da/node_modules/@wirecat/cli-core/dist/store/shared-config.js
|
|
16
16
|
import { mkdirSync, readFileSync, renameSync, statSync, writeFileSync } from "node:fs";
|
|
17
17
|
import { dirname, join, resolve } from "node:path";
|
|
18
18
|
|
|
19
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
19
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.584.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ab8c0b68b8b4768d5b87d6e249ef10da/node_modules/@wirecat/cli-core/dist/domain/task-categories.js
|
|
20
20
|
var DEFAULT_TASK_CATEGORIES = [
|
|
21
21
|
{
|
|
22
22
|
name: "taxes",
|
|
@@ -771,7 +771,7 @@ var storedTaskCategories = /* @__PURE__ */ __name((json) => {
|
|
|
771
771
|
}
|
|
772
772
|
}, "storedTaskCategories");
|
|
773
773
|
|
|
774
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
774
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.584.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ab8c0b68b8b4768d5b87d6e249ef10da/node_modules/@wirecat/cli-core/dist/store/shared-config.js
|
|
775
775
|
var SECTION = "task_categories";
|
|
776
776
|
var sharedConfigPath = /* @__PURE__ */ __name((store, env = process.env) => {
|
|
777
777
|
const paths = resolvePaths({ appName: "WireCat", prefix: "WIRECAT", env });
|
|
@@ -3,15 +3,15 @@ const require = __bundleRequire(import.meta.url);
|
|
|
3
3
|
import {
|
|
4
4
|
readSharedSection,
|
|
5
5
|
writeSharedSection
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TJJ2XSJP.js";
|
|
7
7
|
import {
|
|
8
8
|
CliError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-IOJ2DTCY.js";
|
|
10
10
|
import {
|
|
11
11
|
__name
|
|
12
12
|
} from "./chunk-ZVVMGPBJ.js";
|
|
13
13
|
|
|
14
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
14
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.584.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ab8c0b68b8b4768d5b87d6e249ef10da/node_modules/@wirecat/cli-core/dist/cli/setup-answers.js
|
|
15
15
|
var PERMISSION_ANSWERS = ["readonly", "allow"];
|
|
16
16
|
var QUESTIONS = ["languages", "tools", "permissions"];
|
|
17
17
|
var SECTION = "setup";
|
|
@@ -7,25 +7,24 @@ import {
|
|
|
7
7
|
agentJson,
|
|
8
8
|
commandAvailability,
|
|
9
9
|
failureContext
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-HYTHTSJP.js";
|
|
11
11
|
import {
|
|
12
12
|
callerOf
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-F34HGYWF.js";
|
|
14
14
|
import {
|
|
15
|
+
QUERY_ARGUMENT,
|
|
15
16
|
lentConnection,
|
|
16
17
|
onlineDeps,
|
|
17
18
|
refuseLacking,
|
|
18
19
|
servicesFor,
|
|
19
20
|
storeModeDeps
|
|
20
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-5SAF3XOL.js";
|
|
21
22
|
import {
|
|
22
23
|
MAX_BUFFERED_INPUT
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import {
|
|
25
|
-
ENTITIES
|
|
26
|
-
} from "./chunk-MUSYGFCY.js";
|
|
24
|
+
} from "./chunk-2DAXUNTS.js";
|
|
27
25
|
import {
|
|
28
26
|
DEFAULT_OUTPUT_BYTES,
|
|
27
|
+
ENTITIES,
|
|
29
28
|
LOCAL_WRITE,
|
|
30
29
|
REMOTE_WRITE,
|
|
31
30
|
answerSchema,
|
|
@@ -46,14 +45,18 @@ import {
|
|
|
46
45
|
sealed,
|
|
47
46
|
startRecording,
|
|
48
47
|
traceOf
|
|
49
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-RJ7AS7UB.js";
|
|
50
49
|
import {
|
|
51
50
|
currentCaller,
|
|
52
51
|
keepsSuccess,
|
|
53
52
|
runContextOf,
|
|
54
53
|
withCaller
|
|
55
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-VXOR76ZL.js";
|
|
55
|
+
import {
|
|
56
|
+
queryDescription
|
|
57
|
+
} from "./chunk-YOJLIVGO.js";
|
|
56
58
|
import {
|
|
59
|
+
COMPACT_FLAG,
|
|
57
60
|
CliError,
|
|
58
61
|
SNAKE_CASE,
|
|
59
62
|
array,
|
|
@@ -94,15 +97,15 @@ import {
|
|
|
94
97
|
unknown,
|
|
95
98
|
word,
|
|
96
99
|
writes
|
|
97
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-IOJ2DTCY.js";
|
|
98
101
|
import {
|
|
99
102
|
__name
|
|
100
103
|
} from "./chunk-ZVVMGPBJ.js";
|
|
101
104
|
|
|
102
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
105
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.584.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ab8c0b68b8b4768d5b87d6e249ef10da/node_modules/@wirecat/cli-core/dist/mcp/agent.js
|
|
103
106
|
import { Readable } from "node:stream";
|
|
104
107
|
|
|
105
|
-
// node_modules/.pnpm/@wirecat+cli-base@0.
|
|
108
|
+
// node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/lint.js
|
|
106
109
|
var LINT_SEVERITIES = ["high", "medium", "low"];
|
|
107
110
|
var lintRuleSchema = strictObject({
|
|
108
111
|
id: word,
|
|
@@ -220,16 +223,17 @@ var LINT_RULES = defineLintRules([
|
|
|
220
223
|
}
|
|
221
224
|
]);
|
|
222
225
|
var baselineSchema = array(text);
|
|
223
|
-
var
|
|
226
|
+
var overrideSchema = strictObject({
|
|
224
227
|
rule: word,
|
|
225
228
|
target: text,
|
|
226
229
|
reason: pipe(text, minLength(10, "say why, in a sentence")),
|
|
227
230
|
/** A GitHub handle or a team, `@octocat`. */
|
|
228
231
|
owner: pipe(string(), regex(/^@[\w.-]+(\/[\w.-]+)?$/, "a GitHub handle or team, such as @octocat")),
|
|
229
232
|
review_after: pipe(string(), isoDate("a date, YYYY-MM-DD"))
|
|
230
|
-
})
|
|
233
|
+
});
|
|
234
|
+
var overridesSchema = array(overrideSchema);
|
|
231
235
|
|
|
232
|
-
// node_modules/.pnpm/@wirecat+cli-base@0.
|
|
236
|
+
// node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/audit.js
|
|
233
237
|
var auditRuleSchema = strictObject({ id: word, severity: picklist(LINT_SEVERITIES), summary: text });
|
|
234
238
|
var defineAuditRules = /* @__PURE__ */ __name((input) => parseRegistry("audit rules", array(auditRuleSchema), input, (rules) => duplicates(rules.map((rule) => rule.id)).map((id) => `"${id}" is listed twice`)), "defineAuditRules");
|
|
235
239
|
var AUDIT_RULES = defineAuditRules([
|
|
@@ -274,22 +278,49 @@ var parityGroupSchema = strictObject({
|
|
|
274
278
|
/** Permanent differences, each with its reason; they count against the override budget of the group. */
|
|
275
279
|
differences: array(strictObject({
|
|
276
280
|
rule: word,
|
|
281
|
+
/** `<clis> <path> <flag>`; with `absent`, only `<path> <flag>`: the CLI list is whoever else has it. */
|
|
277
282
|
target: text,
|
|
278
283
|
expected: optional(text),
|
|
284
|
+
/** The CLI that lacks the path or flag by design; the rest must agree, so other CLIs joining do not stale it. */
|
|
285
|
+
absent: optional(word),
|
|
279
286
|
reason: pipe(text, minLength(10, "say why, in a sentence"))
|
|
280
287
|
}))
|
|
281
288
|
});
|
|
282
289
|
var defineParityGroups = /* @__PURE__ */ __name((input) => parseRegistry("parity groups", array(parityGroupSchema), input, (groups) => [
|
|
283
290
|
...duplicates(groups.map((group) => group.name)).map((name) => `"${name}" is listed twice`),
|
|
284
|
-
...groups.flatMap((group) =>
|
|
291
|
+
...groups.flatMap((group) => [
|
|
292
|
+
...duplicates(group.differences.map((entry) => `${entry.rule} ${entry.target}`)).map((both) => `${group.name}: "${both}" is listed twice`),
|
|
293
|
+
...group.differences.filter((entry) => entry.absent && entry.expected).map((entry) => `${group.name}: "${entry.target}" has \`absent\`, which measures the values itself; drop \`expected\``)
|
|
294
|
+
])
|
|
285
295
|
]), "defineParityGroups");
|
|
296
|
+
var MEMO_HAS_NO_PROFILES = [
|
|
297
|
+
"mcp serve",
|
|
298
|
+
"mcp revoke",
|
|
299
|
+
"mcp server start",
|
|
300
|
+
"mcp server status",
|
|
301
|
+
"mcp server stop"
|
|
302
|
+
].map((path) => ({
|
|
303
|
+
rule: "same-path-contract",
|
|
304
|
+
target: `${path} --profiles`,
|
|
305
|
+
absent: "memo",
|
|
306
|
+
reason: "memo has no profiles: it reads other CLIs' stores and selects their accounts with --source and --account (https://github.com/WireCatLabs/cli-base/issues/390)"
|
|
307
|
+
}));
|
|
286
308
|
var PARITY_GROUPS = defineParityGroups([
|
|
287
309
|
{ name: "messengers", members: ["tg", "max"], covers: "tree", differences: [] },
|
|
288
310
|
{
|
|
289
311
|
name: "all",
|
|
290
312
|
members: ["tg", "max", "memo", "drive", "zm", "wa"],
|
|
291
313
|
covers: ["commands", "doctor", "skill", "mcp", "upgrade", "search", "notes", "meetings"],
|
|
292
|
-
differences:
|
|
314
|
+
differences: MEMO_HAS_NO_PROFILES
|
|
315
|
+
},
|
|
316
|
+
// mail's `search messages` is cli-core's mail search, not the messengers' command: --complete took their 20-odd
|
|
317
|
+
// differences as inherited (https://github.com/WireCatLabs/cli-base/issues/390). mail is compared everywhere else
|
|
318
|
+
// and moves back into "all" once its search is aligned with the messengers' or renamed.
|
|
319
|
+
{
|
|
320
|
+
name: "mail-shared",
|
|
321
|
+
members: ["tg", "max", "memo", "drive", "zm", "wa", "mail"],
|
|
322
|
+
covers: ["commands", "doctor", "skill", "mcp", "upgrade", "notes", "meetings"],
|
|
323
|
+
differences: MEMO_HAS_NO_PROFILES
|
|
293
324
|
},
|
|
294
325
|
// gcal is compared on what it already shares with every CLI; doctor, mcp, search and skill wait until the published
|
|
295
326
|
// CLIs agree there (https://github.com/WireCatLabs/cli-base/issues/390), then gcal moves back into "all".
|
|
@@ -311,7 +342,7 @@ var REQUIRED_ROOTS = defineRequiredRoots([
|
|
|
311
342
|
{ path: ["upgrade"], meaning: "updates the CLI" }
|
|
312
343
|
]);
|
|
313
344
|
|
|
314
|
-
// node_modules/.pnpm/@wirecat+cli-base@0.
|
|
345
|
+
// node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/fields.js
|
|
315
346
|
var fieldRuleSchema = strictObject({ id: word, rule: text });
|
|
316
347
|
var defineFieldRules = /* @__PURE__ */ __name((input) => parseRegistry("output field rules", array(fieldRuleSchema), input, (rules) => duplicates(rules.map((rule) => rule.id)).map((id) => `"${id}" is listed twice`)), "defineFieldRules");
|
|
317
348
|
var FIELD_RULES = defineFieldRules([
|
|
@@ -327,7 +358,7 @@ var FIELD_RULES = defineFieldRules([
|
|
|
327
358
|
}
|
|
328
359
|
]);
|
|
329
360
|
|
|
330
|
-
// node_modules/.pnpm/@wirecat+cli-base@0.
|
|
361
|
+
// node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/identifiers.js
|
|
331
362
|
var key = pipe(string(), regex(SNAKE_CASE, "a snake_case key"));
|
|
332
363
|
var identifierSchema = strictObject({ key, meaning: text, replaces: optional(array(key)) });
|
|
333
364
|
var defineIdentifiers = /* @__PURE__ */ __name((input) => parseRegistry("identifiers", array(identifierSchema), input, (identifiers) => {
|
|
@@ -349,7 +380,7 @@ var IDENTIFIERS = defineIdentifiers([
|
|
|
349
380
|
{ key: "trace_id", meaning: "the distributed trace a run belongs to, from `traceparent`" }
|
|
350
381
|
]);
|
|
351
382
|
|
|
352
|
-
// node_modules/.pnpm/@wirecat+cli-base@0.
|
|
383
|
+
// node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/flags-calendar.js
|
|
353
384
|
var CALENDAR_FLAGS = [
|
|
354
385
|
{ name: "--end-time", value: "<time>", role: "value", type: "time", meaning: "when it ends" },
|
|
355
386
|
{
|
|
@@ -423,7 +454,7 @@ var CALENDAR_FLAGS = [
|
|
|
423
454
|
}
|
|
424
455
|
];
|
|
425
456
|
|
|
426
|
-
// node_modules/.pnpm/@wirecat+cli-base@0.
|
|
457
|
+
// node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/flags-how.js
|
|
427
458
|
var HOW_FLAGS = [
|
|
428
459
|
{
|
|
429
460
|
name: "--limit",
|
|
@@ -510,6 +541,12 @@ var HOW_FLAGS = [
|
|
|
510
541
|
type: "switch",
|
|
511
542
|
meaning: "each item as its reference, title, time and excerpt only"
|
|
512
543
|
},
|
|
544
|
+
{
|
|
545
|
+
name: COMPACT_FLAG,
|
|
546
|
+
role: "output",
|
|
547
|
+
type: "switch",
|
|
548
|
+
meaning: "one line per item, built from the same answer as --json, with its paging and next steps as # lines"
|
|
549
|
+
},
|
|
513
550
|
{
|
|
514
551
|
name: "--chart-kind",
|
|
515
552
|
value: "<messages|active|membership>",
|
|
@@ -701,6 +738,7 @@ var HOW_FLAGS = [
|
|
|
701
738
|
meaning: "refuse if what it names has changed since it was read",
|
|
702
739
|
replaces: ["--expected"]
|
|
703
740
|
},
|
|
741
|
+
{ name: "--full-history", role: "mode", type: "switch", meaning: "keep a chat's whole history, past its limits" },
|
|
704
742
|
{
|
|
705
743
|
name: "--for-everyone",
|
|
706
744
|
role: "mode",
|
|
@@ -801,6 +839,13 @@ var HOW_FLAGS = [
|
|
|
801
839
|
type: "string",
|
|
802
840
|
meaning: "the browser program to open for sign-in"
|
|
803
841
|
},
|
|
842
|
+
{
|
|
843
|
+
name: "--credential-storage",
|
|
844
|
+
value: "<storage>",
|
|
845
|
+
role: "mode",
|
|
846
|
+
type: "choice",
|
|
847
|
+
meaning: "where a sign-in is kept: keyring, which falls back to a private file by itself, or file (WC-SECR-4)"
|
|
848
|
+
},
|
|
804
849
|
{ name: "--checkpoint", value: "<file>", role: "mode", type: "path", meaning: "keep resume progress in this file" },
|
|
805
850
|
{
|
|
806
851
|
name: "--expected-event-id",
|
|
@@ -1403,7 +1448,37 @@ var HOW_FLAGS = [
|
|
|
1403
1448
|
}
|
|
1404
1449
|
];
|
|
1405
1450
|
|
|
1406
|
-
// node_modules/.pnpm/@wirecat+cli-base@0.
|
|
1451
|
+
// node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/flags-mail.js
|
|
1452
|
+
var MAIL_FLAGS = [
|
|
1453
|
+
{
|
|
1454
|
+
name: "--cc",
|
|
1455
|
+
value: "<address>",
|
|
1456
|
+
role: "value",
|
|
1457
|
+
type: "string",
|
|
1458
|
+
meaning: "an e-mail address that gets a copy; repeat it for more"
|
|
1459
|
+
},
|
|
1460
|
+
{
|
|
1461
|
+
name: "--bcc",
|
|
1462
|
+
value: "<address>",
|
|
1463
|
+
role: "value",
|
|
1464
|
+
type: "string",
|
|
1465
|
+
meaning: "an e-mail address that gets a blind copy; repeat it for more"
|
|
1466
|
+
},
|
|
1467
|
+
{
|
|
1468
|
+
name: "--reply-all",
|
|
1469
|
+
role: "value",
|
|
1470
|
+
type: "switch",
|
|
1471
|
+
meaning: "with --reply-to, an e-mail reply also goes to everyone the message went to"
|
|
1472
|
+
},
|
|
1473
|
+
{
|
|
1474
|
+
name: "--trimmed",
|
|
1475
|
+
role: "output",
|
|
1476
|
+
type: "switch",
|
|
1477
|
+
meaning: "each e-mail's own text, without the quoted earlier mail and the signature; refused with --full"
|
|
1478
|
+
}
|
|
1479
|
+
];
|
|
1480
|
+
|
|
1481
|
+
// node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/flags-what.js
|
|
1407
1482
|
var WHAT_FLAGS = [
|
|
1408
1483
|
{
|
|
1409
1484
|
name: "--analysis-provider",
|
|
@@ -1848,7 +1923,14 @@ var WHAT_FLAGS = [
|
|
|
1848
1923
|
meaning: "keep a token an operation returns only in this bot profile's keyring; never print it"
|
|
1849
1924
|
},
|
|
1850
1925
|
{ name: "--task", value: "<id>", role: "target", type: "id", meaning: "a task, by id" },
|
|
1851
|
-
{
|
|
1926
|
+
{
|
|
1927
|
+
name: "--to",
|
|
1928
|
+
value: "<chat>",
|
|
1929
|
+
role: "target",
|
|
1930
|
+
type: "id",
|
|
1931
|
+
otherValues: ["address"],
|
|
1932
|
+
meaning: "who it goes to: a chat in a messenger (<chat>), an e-mail address in mail (<address>, repeated for more)"
|
|
1933
|
+
},
|
|
1852
1934
|
{
|
|
1853
1935
|
name: "--topic-name",
|
|
1854
1936
|
value: "<name>",
|
|
@@ -2298,7 +2380,8 @@ var WHAT_FLAGS = [
|
|
|
2298
2380
|
value: "<ref>",
|
|
2299
2381
|
role: "value",
|
|
2300
2382
|
type: "string",
|
|
2301
|
-
|
|
2383
|
+
otherValues: ["text"],
|
|
2384
|
+
meaning: "what it is about: a reference in a note or task (<ref>), the subject line in mail (<text>)",
|
|
2302
2385
|
replaces: ["--about"]
|
|
2303
2386
|
},
|
|
2304
2387
|
{
|
|
@@ -2393,7 +2476,7 @@ var WHAT_FLAGS = [
|
|
|
2393
2476
|
}
|
|
2394
2477
|
];
|
|
2395
2478
|
|
|
2396
|
-
// node_modules/.pnpm/@wirecat+cli-base@0.
|
|
2479
|
+
// node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/vocabulary.js
|
|
2397
2480
|
var FLAG_TYPES = [
|
|
2398
2481
|
"switch",
|
|
2399
2482
|
"count",
|
|
@@ -2435,6 +2518,11 @@ var flagSchema = strictObject({
|
|
|
2435
2518
|
type: picklist(FLAG_TYPES),
|
|
2436
2519
|
role: picklist(Object.keys(FLAG_ROLES)),
|
|
2437
2520
|
meaning: text,
|
|
2521
|
+
/**
|
|
2522
|
+
* Value names a domain other than the main one gives the flag, such as mail's `--to <address>` beside the
|
|
2523
|
+
* messengers' `<chat>`. The meaning for each says which is which. `flag-two-meanings` accepts these and no others.
|
|
2524
|
+
*/
|
|
2525
|
+
otherValues: optional(array(pipe(string(), regex(/^[a-z][a-z0-9-]*$/, "a value name such as address")))),
|
|
2438
2526
|
unit: optional(text),
|
|
2439
2527
|
/** Other names for the same flag, which `flag-synonym` refuses. */
|
|
2440
2528
|
replaces: optional(array(pipe(string(), regex(/^--[a-z][a-z0-9]*(-[a-z0-9]+)*$/, "a long flag"))))
|
|
@@ -2544,6 +2632,7 @@ var verbs = [
|
|
|
2544
2632
|
["vote", "answer a poll"],
|
|
2545
2633
|
["answer", "reply to a button someone pressed under a bot's message"],
|
|
2546
2634
|
["respond", "answer an invitation: accept, tentatively accept or decline it"],
|
|
2635
|
+
["remind", "tell the owner once about what starts soon: print it, or run the owner's own program for it"],
|
|
2547
2636
|
["press", "press a button under a bot's message; the bot sees who pressed it"],
|
|
2548
2637
|
["action", "show what a bot is doing in a chat, such as typing, for a few seconds"],
|
|
2549
2638
|
["watch", "follow new events as they come, and keep them"],
|
|
@@ -2571,6 +2660,10 @@ var verbs = [
|
|
|
2571
2660
|
["move", "move a thing to another place in the source: a file to a folder, an event to a calendar"],
|
|
2572
2661
|
["copy", "copy a file in the source"],
|
|
2573
2662
|
["run", "run a saved job once, now, as its timer would"],
|
|
2663
|
+
["exec", "what a timer itself starts: one saved schedule, from its file; a person uses run"],
|
|
2664
|
+
// schedule's creators are named for what the timer starts; the owner kept these names over `create --kind`.
|
|
2665
|
+
["agent", "save a timer that starts an agent with a prompt, read-only; a verb under schedule, never a resource"],
|
|
2666
|
+
["command", "save a timer that runs one of this tool's own commands; a verb under schedule"],
|
|
2574
2667
|
["claim", "take a thing for a while so no other agent works it at once; the claim lapses by itself"],
|
|
2575
2668
|
["release", "give back what claim took, before it lapses"],
|
|
2576
2669
|
["merge", "fold a duplicate into the thing that stays; nothing is deleted"],
|
|
@@ -2598,6 +2691,7 @@ var collections = [
|
|
|
2598
2691
|
["chats", "conversations in a messenger"],
|
|
2599
2692
|
["contacts", "identities in a messenger's contact list"],
|
|
2600
2693
|
["messages", "posts in a messenger chat, or emails"],
|
|
2694
|
+
["drafts", "e-mails saved in a mailbox's Drafts folder, written and not sent"],
|
|
2601
2695
|
["polls", "polls in a chat"],
|
|
2602
2696
|
["reactions", "reactions to a message"],
|
|
2603
2697
|
["recipients", "who a message goes to"],
|
|
@@ -2640,6 +2734,10 @@ var collections = [
|
|
|
2640
2734
|
["recordings", "the files a provider recorded of a meeting"],
|
|
2641
2735
|
["jobs", "work this tool runs in the background or on a timer"],
|
|
2642
2736
|
["actions", "what an agent proposes to do; the owner confirms or rejects each"],
|
|
2737
|
+
[
|
|
2738
|
+
"findings",
|
|
2739
|
+
"what an agent read in stored mail, staged in batches with citations; nothing is recorded until the owner confirms. What it proposes to do is actions"
|
|
2740
|
+
],
|
|
2643
2741
|
["agents", "the agents whose actions are recorded in the shared store"],
|
|
2644
2742
|
["reminders", "scheduled notices about stored work, claimed and acknowledged with delivery receipts"],
|
|
2645
2743
|
["key-documents", "selected source documents that a project keeps as its starting references"],
|
|
@@ -2681,7 +2779,11 @@ var singulars = [
|
|
|
2681
2779
|
["api", "the source's own API, one command per operation"],
|
|
2682
2780
|
["privacy", "who may find, see, call or add the account"],
|
|
2683
2781
|
["metadata", "a profile's cached source attributes"],
|
|
2684
|
-
["auth", "the credentials a bot profile uses: its token and the secrets beside it"]
|
|
2782
|
+
["auth", "the credentials a bot profile uses: its token and the secrets beside it"],
|
|
2783
|
+
[
|
|
2784
|
+
"schedule",
|
|
2785
|
+
"a profile's timers the owner saved, each running a command of this tool or an agent; the tool's own background work is jobs"
|
|
2786
|
+
]
|
|
2685
2787
|
];
|
|
2686
2788
|
var views = [
|
|
2687
2789
|
["tree", "the parent and child hierarchy of stored sources"],
|
|
@@ -2744,10 +2846,10 @@ var VOCABULARY = defineVocabulary({
|
|
|
2744
2846
|
],
|
|
2745
2847
|
views: views.map(([entry, meaning]) => ({ word: entry, meaning })),
|
|
2746
2848
|
roots: roots.map(([entry, meaning]) => ({ word: entry, meaning })),
|
|
2747
|
-
flags: [...HOW_FLAGS, ...WHAT_FLAGS, ...CALENDAR_FLAGS]
|
|
2849
|
+
flags: [...HOW_FLAGS, ...WHAT_FLAGS, ...CALENDAR_FLAGS, ...MAIL_FLAGS]
|
|
2748
2850
|
});
|
|
2749
2851
|
|
|
2750
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
2852
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.584.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ab8c0b68b8b4768d5b87d6e249ef10da/node_modules/@wirecat/cli-core/dist/mcp/agent.js
|
|
2751
2853
|
var TYPES = new Map(VOCABULARY.flags.map((flag) => [flag.name, flag.type]));
|
|
2752
2854
|
var snake = /* @__PURE__ */ __name((name) => name.replaceAll("|", "_or_").replace(/[^a-z0-9]+/gi, "_"), "snake");
|
|
2753
2855
|
var longOf = /* @__PURE__ */ __name((option) => option.flags.match(/--[a-z0-9][a-z0-9-]*/)?.[0], "longOf");
|
|
@@ -2806,8 +2908,10 @@ var optionField = /* @__PURE__ */ __name((option, long, negated) => {
|
|
|
2806
2908
|
}, "argv")
|
|
2807
2909
|
};
|
|
2808
2910
|
}, "optionField");
|
|
2809
|
-
var argumentField = /* @__PURE__ */ __name((argument) => {
|
|
2810
|
-
const
|
|
2911
|
+
var argumentField = /* @__PURE__ */ __name((argument, query) => {
|
|
2912
|
+
const own = argument.description || argument.name;
|
|
2913
|
+
const about = query && argument.name === "query" ? own === QUERY_ARGUMENT ? queryDescription(query) : `${own}; ${queryDescription(query)}` : own;
|
|
2914
|
+
const one = argument.choices ? pipe(picklist(argument.choices), description(argument.description)) : text2(about);
|
|
2811
2915
|
return {
|
|
2812
2916
|
name: snake(argument.name),
|
|
2813
2917
|
required: argument.required,
|
|
@@ -2833,7 +2937,7 @@ var stdinField = /* @__PURE__ */ __name(({ name, description: description2, json
|
|
|
2833
2937
|
argv: /* @__PURE__ */ __name(() => [], "argv")
|
|
2834
2938
|
}), "stdinField");
|
|
2835
2939
|
var fieldsOf = /* @__PURE__ */ __name((info, { omit = [], offline = false, stdin }) => {
|
|
2836
|
-
const fields = info.arguments.map(argumentField);
|
|
2940
|
+
const fields = info.arguments.map((argument) => argumentField(argument, info.query));
|
|
2837
2941
|
const read = stdin?.(info.path);
|
|
2838
2942
|
if (read)
|
|
2839
2943
|
fields.push(stdinField(read));
|
|
@@ -2968,7 +3072,7 @@ var runCommandForAgent = /* @__PURE__ */ __name(async (program, path, input, ctx
|
|
|
2968
3072
|
}
|
|
2969
3073
|
}, "runCommandForAgent");
|
|
2970
3074
|
|
|
2971
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
3075
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.584.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ab8c0b68b8b4768d5b87d6e249ef10da/node_modules/@wirecat/cli-core/dist/mcp/tool.js
|
|
2972
3076
|
var limit = optional(pipe(number(), integer(), minValue(1), maxValue(100), description("how many")));
|
|
2973
3077
|
var page = optional(pipe(number(), integer(), minValue(1), description("which page, from 1")));
|
|
2974
3078
|
var message = pipe(
|
|
@@ -3082,7 +3186,7 @@ var entryRunner = /* @__PURE__ */ __name((registration) => {
|
|
|
3082
3186
|
...outcomeOf(result),
|
|
3083
3187
|
startedAt,
|
|
3084
3188
|
finishedAt: Date.now()
|
|
3085
|
-
})?.catch(() => void 0);
|
|
3189
|
+
}, caller)?.catch(() => void 0);
|
|
3086
3190
|
return result;
|
|
3087
3191
|
};
|
|
3088
3192
|
}, "entryRunner");
|
|
@@ -3227,7 +3331,7 @@ var failed = /* @__PURE__ */ __name((error, errors, effects) => {
|
|
|
3227
3331
|
return mcpErrorResult(JSON.parse(agentJson(errorObjectOf(error, context))));
|
|
3228
3332
|
}, "failed");
|
|
3229
3333
|
|
|
3230
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
3334
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.584.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ab8c0b68b8b4768d5b87d6e249ef10da/node_modules/@wirecat/cli-core/dist/mcp/surface.js
|
|
3231
3335
|
import { randomUUID } from "node:crypto";
|
|
3232
3336
|
var MATCHES = 8;
|
|
3233
3337
|
var ANSWER = answerSchema();
|
|
@@ -3250,7 +3354,7 @@ var runnableOnly = /* @__PURE__ */ __name((result, offered) => {
|
|
|
3250
3354
|
const body = result.structuredContent;
|
|
3251
3355
|
if (result.isError || !Array.isArray(body?.next))
|
|
3252
3356
|
return result;
|
|
3253
|
-
const next = body.next.filter((step) => offered(step.command));
|
|
3357
|
+
const next = body.next.filter((step) => step.command === void 0 || offered(step.command));
|
|
3254
3358
|
const { next: _, ...rest } = body;
|
|
3255
3359
|
const kept = next.length > 0 ? { ...rest, next } : rest;
|
|
3256
3360
|
return {
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
__name
|
|
5
5
|
} from "./chunk-ZVVMGPBJ.js";
|
|
6
6
|
|
|
7
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
7
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.584.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ab8c0b68b8b4768d5b87d6e249ef10da/node_modules/@wirecat/cli-core/dist/background/processes.js
|
|
8
8
|
import { execFileSync } from "node:child_process";
|
|
9
9
|
import { readdirSync, readFileSync, readlinkSync } from "node:fs";
|
|
10
10
|
var alive = /* @__PURE__ */ __name((pid) => {
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
__name
|
|
5
5
|
} from "./chunk-ZVVMGPBJ.js";
|
|
6
6
|
|
|
7
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
7
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.584.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ab8c0b68b8b4768d5b87d6e249ef10da/node_modules/@wirecat/cli-core/dist/mcp/stdio-wire.js
|
|
8
8
|
import { PassThrough, Writable } from "node:stream";
|
|
9
9
|
var lineReader = /* @__PURE__ */ __name((onMessage) => {
|
|
10
10
|
let rest = "";
|