@staff0rd/assist 0.165.0 → 0.166.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/assist.cli-reads +37 -0
- package/claude/settings.json +0 -38
- package/dist/index.js +58 -13
- package/package.json +1 -1
package/assist.cli-reads
CHANGED
|
@@ -19,6 +19,43 @@ acli jira workitem link list
|
|
|
19
19
|
acli jira workitem search
|
|
20
20
|
acli jira workitem view
|
|
21
21
|
acli jira workitem watcher list
|
|
22
|
+
assist backlog add
|
|
23
|
+
assist backlog comment
|
|
24
|
+
assist backlog comments
|
|
25
|
+
assist backlog done
|
|
26
|
+
assist backlog list
|
|
27
|
+
assist backlog phase-done
|
|
28
|
+
assist backlog plan
|
|
29
|
+
assist backlog show
|
|
30
|
+
assist backlog start
|
|
31
|
+
assist backlog view
|
|
32
|
+
assist cli-hook
|
|
33
|
+
assist commit
|
|
34
|
+
assist complexity
|
|
35
|
+
assist coverage
|
|
36
|
+
assist devlog
|
|
37
|
+
assist dotnet
|
|
38
|
+
assist jira ac
|
|
39
|
+
assist jira auth
|
|
40
|
+
assist jira view
|
|
41
|
+
assist news
|
|
42
|
+
assist notify
|
|
43
|
+
assist prs list-comments
|
|
44
|
+
assist ravendb auth list
|
|
45
|
+
assist ravendb collections
|
|
46
|
+
assist ravendb query
|
|
47
|
+
assist refactor
|
|
48
|
+
assist roam show-claude-code-icon
|
|
49
|
+
assist screenshot
|
|
50
|
+
assist seq auth list
|
|
51
|
+
assist seq query
|
|
52
|
+
assist signal next
|
|
53
|
+
assist status-line
|
|
54
|
+
assist sync
|
|
55
|
+
assist transcript format
|
|
56
|
+
assist transcript summarise
|
|
57
|
+
assist verify
|
|
58
|
+
assist voice
|
|
22
59
|
az account list
|
|
23
60
|
az account lock list
|
|
24
61
|
az account lock show
|
package/claude/settings.json
CHANGED
|
@@ -23,44 +23,6 @@
|
|
|
23
23
|
},
|
|
24
24
|
"permissions": {
|
|
25
25
|
"allow": [
|
|
26
|
-
"Bash(assist status-line:*)",
|
|
27
|
-
"Bash(assist notify:*)",
|
|
28
|
-
"Bash(assist commit:*)",
|
|
29
|
-
"Bash(assist devlog:*)",
|
|
30
|
-
"Bash(assist complexity:*)",
|
|
31
|
-
"Bash(assist refactor:*)",
|
|
32
|
-
"Bash(assist prs list-comments:*)",
|
|
33
|
-
"Bash(assist cli-hook:*)",
|
|
34
|
-
"Bash(assist sync:*)",
|
|
35
|
-
"Bash(assist verify:*)",
|
|
36
|
-
"Bash(assist news:*)",
|
|
37
|
-
"Bash(assist backlog list:*)",
|
|
38
|
-
"Bash(assist backlog start:*)",
|
|
39
|
-
"Bash(assist backlog done:*)",
|
|
40
|
-
"Bash(assist backlog show:*)",
|
|
41
|
-
"Bash(assist backlog view:*)",
|
|
42
|
-
"Bash(assist backlog plan:*)",
|
|
43
|
-
"Bash(assist backlog phase-done:*)",
|
|
44
|
-
"Bash(assist backlog comment:*)",
|
|
45
|
-
"Bash(assist backlog comments:*)",
|
|
46
|
-
"Bash(assist backlog add:*)",
|
|
47
|
-
"Bash(assist signal next:*)",
|
|
48
|
-
"Bash(assist transcript summarise:*)",
|
|
49
|
-
"Bash(assist complexity:*)",
|
|
50
|
-
"Bash(assist transcript format:*)",
|
|
51
|
-
"Bash(assist voice:*)",
|
|
52
|
-
"Bash(assist jira auth:*)",
|
|
53
|
-
"Bash(assist jira ac:*)",
|
|
54
|
-
"Bash(assist jira view:*)",
|
|
55
|
-
"Bash(assist dotnet:*)",
|
|
56
|
-
"Bash(assist ravendb query:*)",
|
|
57
|
-
"Bash(assist ravendb collections:*)",
|
|
58
|
-
"Bash(assist ravendb auth list:*)",
|
|
59
|
-
"Bash(assist seq query:*)",
|
|
60
|
-
"Bash(assist seq auth list:*)",
|
|
61
|
-
"Bash(assist coverage:*)",
|
|
62
|
-
"Bash(assist screenshot:*)",
|
|
63
|
-
"Bash(assist roam show-claude-code-icon:*)",
|
|
64
26
|
"SlashCommand(/verify)",
|
|
65
27
|
"SlashCommand(/commit)",
|
|
66
28
|
"SlashCommand(/devlog)",
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { Command } from "commander";
|
|
|
6
6
|
// package.json
|
|
7
7
|
var package_default = {
|
|
8
8
|
name: "@staff0rd/assist",
|
|
9
|
-
version: "0.
|
|
9
|
+
version: "0.166.0",
|
|
10
10
|
type: "module",
|
|
11
11
|
main: "dist/index.js",
|
|
12
12
|
bin: {
|
|
@@ -3977,7 +3977,7 @@ async function cliHook() {
|
|
|
3977
3977
|
}
|
|
3978
3978
|
|
|
3979
3979
|
// src/commands/cliHook/cliHookCheck.ts
|
|
3980
|
-
function cliHookCheck(command) {
|
|
3980
|
+
function cliHookCheck(command, toolName = "Bash") {
|
|
3981
3981
|
const trimmed = command.trim();
|
|
3982
3982
|
const parts = splitCompound(trimmed);
|
|
3983
3983
|
if (!parts) {
|
|
@@ -3995,7 +3995,7 @@ function cliHookCheck(command) {
|
|
|
3995
3995
|
}
|
|
3996
3996
|
const reasons = [];
|
|
3997
3997
|
for (const part of parts) {
|
|
3998
|
-
const reason = isApprovedRead(part);
|
|
3998
|
+
const reason = isApprovedRead(part, toolName);
|
|
3999
3999
|
if (!reason) {
|
|
4000
4000
|
console.log(`not approved (unrecognised: ${part})`);
|
|
4001
4001
|
process.exitCode = 1;
|
|
@@ -4405,8 +4405,8 @@ function registerCliHook(program2) {
|
|
|
4405
4405
|
const cmd = program2.command("cli-hook").description("PreToolUse hook for auto-approving read-only CLI commands").action(() => {
|
|
4406
4406
|
cliHook();
|
|
4407
4407
|
});
|
|
4408
|
-
cmd.command("check <command>").description("Check whether a command would be auto-approved").action((command) => {
|
|
4409
|
-
cliHookCheck(command);
|
|
4408
|
+
cmd.command("check <command>").description("Check whether a command would be auto-approved").option("--tool <tool>", "Tool name to check against", "Bash").action((command, options2) => {
|
|
4409
|
+
cliHookCheck(command, options2.tool);
|
|
4410
4410
|
});
|
|
4411
4411
|
cmd.command("add").description("Discover a CLI's commands and auto-permit read-only ones").argument(
|
|
4412
4412
|
"<cli...>",
|
|
@@ -9092,10 +9092,10 @@ var seqAuth = createConnectionAuth({
|
|
|
9092
9092
|
// src/commands/seq/seqQuery.ts
|
|
9093
9093
|
import chalk111 from "chalk";
|
|
9094
9094
|
|
|
9095
|
-
// src/commands/seq/
|
|
9095
|
+
// src/commands/seq/fetchSeq.ts
|
|
9096
9096
|
import chalk108 from "chalk";
|
|
9097
|
-
async function
|
|
9098
|
-
const url = `${conn.url}
|
|
9097
|
+
async function fetchSeq(conn, path50, params) {
|
|
9098
|
+
const url = `${conn.url}${path50}?${params}`;
|
|
9099
9099
|
const response = await fetch(url, {
|
|
9100
9100
|
headers: {
|
|
9101
9101
|
Accept: "application/json",
|
|
@@ -9107,6 +9107,52 @@ async function fetchSeqEvents(conn, params) {
|
|
|
9107
9107
|
console.error(chalk108.red(`Seq returned ${response.status}: ${body}`));
|
|
9108
9108
|
process.exit(1);
|
|
9109
9109
|
}
|
|
9110
|
+
return response;
|
|
9111
|
+
}
|
|
9112
|
+
|
|
9113
|
+
// src/commands/seq/filterToSql.ts
|
|
9114
|
+
function filterToSql(filter) {
|
|
9115
|
+
return filter.replace(/==/g, "=").replace(/"([^"]*)"/g, "'$1'");
|
|
9116
|
+
}
|
|
9117
|
+
|
|
9118
|
+
// src/commands/seq/fetchSeqData.ts
|
|
9119
|
+
async function fetchSeqData(conn, filter, count, from) {
|
|
9120
|
+
const sqlFilter = filterToSql(filter);
|
|
9121
|
+
const sql = `select @Timestamp, @Level, @Exception, @Message from stream where ${sqlFilter} order by @Timestamp desc limit ${count}`;
|
|
9122
|
+
const params = new URLSearchParams({ q: sql, fromDateUtc: from });
|
|
9123
|
+
const response = await fetchSeq(conn, "/api/data", params);
|
|
9124
|
+
const data = await response.json();
|
|
9125
|
+
return mapDataToEvents(data);
|
|
9126
|
+
}
|
|
9127
|
+
function ticksToIso(value) {
|
|
9128
|
+
if (typeof value === "string") return value;
|
|
9129
|
+
const ticks = Number(value);
|
|
9130
|
+
const epochTicks = 621355968e9;
|
|
9131
|
+
return new Date((ticks - epochTicks) / 1e4).toISOString();
|
|
9132
|
+
}
|
|
9133
|
+
function mapDataToEvents(data) {
|
|
9134
|
+
const colIndex = new Map(data.Columns.map((c, i) => [c, i]));
|
|
9135
|
+
function col(name) {
|
|
9136
|
+
const idx = colIndex.get(name) ?? colIndex.get(`@${name}`);
|
|
9137
|
+
if (idx === void 0) throw new Error(`Missing column: ${name}`);
|
|
9138
|
+
return idx;
|
|
9139
|
+
}
|
|
9140
|
+
const tsIdx = col("Timestamp");
|
|
9141
|
+
const levelIdx = col("Level");
|
|
9142
|
+
const exIdx = col("Exception");
|
|
9143
|
+
const msgIdx = col("Message");
|
|
9144
|
+
return data.Rows.map((row) => ({
|
|
9145
|
+
Timestamp: ticksToIso(row[tsIdx]),
|
|
9146
|
+
Level: String(row[levelIdx] ?? ""),
|
|
9147
|
+
Exception: row[exIdx] != null ? String(row[exIdx]) : void 0,
|
|
9148
|
+
Properties: [],
|
|
9149
|
+
MessageTemplateTokens: [{ Text: String(row[msgIdx] ?? "") }]
|
|
9150
|
+
}));
|
|
9151
|
+
}
|
|
9152
|
+
|
|
9153
|
+
// src/commands/seq/fetchSeqEvents.ts
|
|
9154
|
+
async function fetchSeqEvents(conn, params) {
|
|
9155
|
+
const response = await fetchSeq(conn, "/api/events", params);
|
|
9110
9156
|
return response.json();
|
|
9111
9157
|
}
|
|
9112
9158
|
|
|
@@ -9202,11 +9248,10 @@ function resolveConnection2(name) {
|
|
|
9202
9248
|
async function seqQuery(filter, options2) {
|
|
9203
9249
|
const conn = resolveConnection2(options2.connection);
|
|
9204
9250
|
const count = Number.parseInt(options2.count ?? "1000", 10);
|
|
9205
|
-
const
|
|
9206
|
-
|
|
9207
|
-
|
|
9208
|
-
|
|
9209
|
-
const events = await fetchSeqEvents(conn, params);
|
|
9251
|
+
const events = options2.from ? await fetchSeqData(conn, filter, count, options2.from) : await fetchSeqEvents(
|
|
9252
|
+
conn,
|
|
9253
|
+
new URLSearchParams({ filter, count: String(count) })
|
|
9254
|
+
);
|
|
9210
9255
|
if (events.length === 0) {
|
|
9211
9256
|
console.log(chalk111.yellow("No events found."));
|
|
9212
9257
|
return;
|