tickmarkr 1.48.0 → 1.48.2
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/adapters/kimi.js
CHANGED
|
@@ -64,10 +64,15 @@ export const kimi = {
|
|
|
64
64
|
: { ...h, authed: false, note: "no valid ~/.kimi-code/credentials/kimi-code.json (kimi login to fix)" };
|
|
65
65
|
},
|
|
66
66
|
channels: (cfg) => channelsFromConfig("kimi", cfg),
|
|
67
|
-
// KIMI-02 headless. -p prompt mode +
|
|
68
|
-
// with -y at parse time
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
// KIMI-02 headless. -p prompt mode + explicit model, NO permission flag: kimi 0.26.0 rejects
|
|
68
|
+
// -p combined with -y/--auto at argument parse time ("Cannot combine --prompt with --yolo",
|
|
69
|
+
// OBS-67 — doctor probes all failed on it), and prompt mode is already non-interactive with
|
|
70
|
+
// tool actions auto-approved (live-verified 2026-07-17: unattended file write succeeded).
|
|
71
|
+
headlessCommand: (promptFile, model) => `kimi -p "$(cat ${shq(promptFile)})" --model ${shq(model)} --output-format text`,
|
|
72
|
+
// kimi 0.26.0 has NO TUI argv-seeding surface: a positional prompt parses as a subcommand
|
|
73
|
+
// ("unknown command '…'", live-verified 2026-07-17, OBS-67) and -p is non-interactive-only.
|
|
74
|
+
// null → the daemon's print fallback (types.ts:101) keeps kimi workers visible without a TUI.
|
|
75
|
+
interactiveCommand: () => null,
|
|
71
76
|
invoke(task, _cwd, a, ctx) {
|
|
72
77
|
return { command: this.headlessCommand(ctx.promptFile, a.model) };
|
|
73
78
|
},
|
|
@@ -33,6 +33,9 @@ function stylize(out) {
|
|
|
33
33
|
}
|
|
34
34
|
export async function doctor(_argv, cwd = process.cwd(), adapters = allAdapters(), opts = {}) {
|
|
35
35
|
const cfg = loadConfig(cwd);
|
|
36
|
+
// banner at START — the logo greets the operator before the ~60s probe wait, never trailing it (operator report 2026-07-17)
|
|
37
|
+
if (opts.banner !== false && visual())
|
|
38
|
+
process.stdout.write(BANNER);
|
|
36
39
|
// stderr, live: auth probes are real LLM calls (up to 30s per configured model) and the CLI
|
|
37
40
|
// otherwise prints nothing until the end — silence here reads as a hang (v1.33.1)
|
|
38
41
|
console.error("probing installed agent CLIs — one short LLM call per configured model, may take a minute...");
|
|
@@ -165,6 +168,5 @@ export async function doctor(_argv, cwd = process.cwd(), adapters = allAdapters(
|
|
|
165
168
|
const modelSummary = modelStatus.length || preferStatus.length
|
|
166
169
|
? `\nmodel status:\n${[...modelStatus, ...preferStatus].join("\n")}`
|
|
167
170
|
: "";
|
|
168
|
-
|
|
169
|
-
return opts.banner !== false && visual() ? BANNER + body : body;
|
|
171
|
+
return stylize(`tickmarkr doctor — capability matrix:\n${rows.join("\n")}${modelSummary}${drift}\nwrote ${stateDirName(cwd)}/doctor.json`);
|
|
170
172
|
}
|
|
@@ -210,6 +210,8 @@ export async function init(argv, cwd = process.cwd()) {
|
|
|
210
210
|
yes: { type: "boolean" },
|
|
211
211
|
},
|
|
212
212
|
});
|
|
213
|
+
// banner at START on the visual surface — every init path, not just the wizard, and never trailing the probe (operator report 2026-07-17)
|
|
214
|
+
emitBanner();
|
|
213
215
|
const gdir = values["global-dir"] ?? globalConfigDir();
|
|
214
216
|
mkdirSync(gdir, { recursive: true });
|
|
215
217
|
const notes = [];
|
|
@@ -262,8 +264,5 @@ export async function init(argv, cwd = process.cwd()) {
|
|
|
262
264
|
}
|
|
263
265
|
if (values.agent)
|
|
264
266
|
await installAgentFiles(cwd, values.force ?? false, values.docs ?? false, notes);
|
|
265
|
-
|
|
266
|
-
if (visual() && !bannerEmitted)
|
|
267
|
-
return BANNER + body;
|
|
268
|
-
return body;
|
|
267
|
+
return `${notes.join("\n")}\n${doc}\n${nextSteps(cwd, SCAFFOLD_SPEC)}\n${ENVIRONMENTS_FOOTER}`;
|
|
269
268
|
}
|