@miadi/tide-contract 0.3.1 → 0.3.3
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/README.md +23 -1
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/secret-redaction.d.ts +22 -0
- package/dist/secret-redaction.d.ts.map +1 -0
- package/dist/secret-redaction.js +60 -0
- package/dist/secret-redaction.js.map +1 -0
- package/package.json +2 -1
- package/schema/secret-redaction.json +30 -0
- package/schema/tide-api.schema.json +29 -0
package/README.md
CHANGED
|
@@ -30,12 +30,16 @@ import schema from "@miadi/tide-contract/schema/tide-api.schema.json" with { typ
|
|
|
30
30
|
|
|
31
31
|
| area | types |
|
|
32
32
|
|---|---|
|
|
33
|
-
| live context | `ContextSnapshot`, `TerminalContext`, `WindowEvent`, `TideHealthResult` |
|
|
33
|
+
| live context | `ContextSnapshot`, `TerminalContext`, `TidePaneAgent`, `TidePaneAgentState`, `WindowEvent`, `TideHealthResult` |
|
|
34
34
|
| terminals and detection | `TideTerminalsResult`, `TideTerminalTarget`, `TideDetectResult`, `TideDetectMatch` |
|
|
35
35
|
| reading and steering a pane | `TidePeekResult`, `TideSteerResult`, `TideSendResult`, `TideSendKeysResult` |
|
|
36
36
|
| herdr | `TideHerdrPaneInfo`, `TideHerdrInventory`, `TideHerdrWorkspaceInfo`, `TideHerdrTabInfo`, `TideHerdrWaitOutputResult`, `TideHerdrAgentStatusEvent` |
|
|
37
37
|
| agent lanes in an episode | `EpisodeLane`, `EpisodeLaneTopology`, `TideLaneCheckpoint`, `TideResumeLink`, `TideAudioManifestLink`, `TidePendingApproval`, `ObserverControllerPosture` |
|
|
38
38
|
|
|
39
|
+
A terminal carries its `window_index`, `pane_index` and `agent` from ironsilk 0.9.35 on: the
|
|
40
|
+
agent that runs, or ran, in the pane (`running`, `exited` or `lost`), or `null`. All three are
|
|
41
|
+
optional, so snapshots from older runtimes stay valid.
|
|
42
|
+
|
|
39
43
|
Results that differ by multiplexer are unions discriminated by `multiplexer` (`"tmux"` or
|
|
40
44
|
`"herdr"`; absent means `"tmux"`). A peek is `{ target, resolved, content }` on tmux and
|
|
41
45
|
`{ multiplexer, pane, lines, text }` on herdr.
|
|
@@ -59,3 +63,21 @@ Exported from the package and mirrored in the schema's `x-tide` metadata:
|
|
|
59
63
|
|
|
60
64
|
The TypeScript types are written by hand and checked against the schema by a test that fails
|
|
61
65
|
when the two drift apart. Generating them from the schema is planned.
|
|
66
|
+
|
|
67
|
+
## Credential redaction
|
|
68
|
+
|
|
69
|
+
`schema/secret-redaction.json` is an ordered list of credential rules for pane captures.
|
|
70
|
+
`sanitizeSecrets(text)` applies it: a token keeps its first 6 characters followed by `***`
|
|
71
|
+
(`mwt_Qn***`, `sk-ant***`), a `NAME_TOKEN=value` or `Bearer value` keeps its label, and a
|
|
72
|
+
private key block is replaced whole. Running it twice changes nothing.
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
import { sanitizeSecrets } from "@miadi/tide-contract"
|
|
76
|
+
|
|
77
|
+
sanitizeSecrets("export MIADI_API_TOKEN=abc123def456ghi789")
|
|
78
|
+
// "export MIADI_API_TOKEN=abc123***"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
The rules are plain regular expressions in the subset JavaScript and Python share, so a
|
|
82
|
+
runtime in another language can read the JSON (`@miadi/tide-contract/schema/secret-redaction.json`).
|
|
83
|
+
A test holds the exported `TIDE_SECRET_RULES` equal to it.
|
package/dist/index.d.ts
CHANGED
|
@@ -14,10 +14,64 @@ export type Multiplexer = "tmux" | "herdr";
|
|
|
14
14
|
* but that pane has not been looked at yet.
|
|
15
15
|
*/
|
|
16
16
|
export type TideAgentStatus = "idle" | "working" | "blocked" | "done" | "unknown";
|
|
17
|
+
/**
|
|
18
|
+
* State of the agent in a pane. `running`: its process is in the pane now.
|
|
19
|
+
* `exited`: its last binding line since the tmux server started is `session.end`.
|
|
20
|
+
* `lost`: any other last line, with no live process.
|
|
21
|
+
*/
|
|
22
|
+
export type TidePaneAgentState = "running" | "exited" | "lost";
|
|
23
|
+
/**
|
|
24
|
+
* The agent that runs, or ran, in one tmux pane (ironsilk 0.9.35+). Running claude
|
|
25
|
+
* agents come from `~/.claude/sessions/<pid>.json`, the others from the binding
|
|
26
|
+
* lines under `<sessiondata>/data/terminal_bindings.jsonl`, so the optional
|
|
27
|
+
* fields differ by source.
|
|
28
|
+
*/
|
|
29
|
+
export interface TidePaneAgent {
|
|
30
|
+
/** Agent program: claude, hermes, pi, … */
|
|
31
|
+
kind: string;
|
|
32
|
+
state: TidePaneAgentState;
|
|
33
|
+
session_id: string;
|
|
34
|
+
/** Session name (`/rename`); empty when unnamed. */
|
|
35
|
+
name?: string;
|
|
36
|
+
name_source?: string;
|
|
37
|
+
/** Claude Code's own status for a running session. */
|
|
38
|
+
status?: string;
|
|
39
|
+
/** Last activity: epoch milliseconds from Claude Code, epoch seconds from a binding line, or null. */
|
|
40
|
+
updated_at?: number | string | null;
|
|
41
|
+
pid?: number;
|
|
42
|
+
cwd?: string;
|
|
43
|
+
argv?: string[];
|
|
44
|
+
/** Shell alias the agent was launched with (`MIADI_LAUNCH_ALIAS`); empty when unknown. */
|
|
45
|
+
launch_alias?: string;
|
|
46
|
+
/** Timestamp of the binding line this record came from. */
|
|
47
|
+
at?: string;
|
|
48
|
+
/** Source of the binding line. */
|
|
49
|
+
reason?: string;
|
|
50
|
+
[key: string]: unknown;
|
|
51
|
+
}
|
|
17
52
|
export interface TerminalContext {
|
|
18
53
|
multiplexer?: Multiplexer;
|
|
19
54
|
/** Pane id in the owning multiplexer: tmux (e.g. "%56") or herdr (e.g. "w1:p2" as of herdr 0.7; legacy "1-2" accepted). Field name is historical. */
|
|
20
55
|
tmux_pane: string;
|
|
56
|
+
/**
|
|
57
|
+
* Name of the owning tmux session (`#{session_name}`) — the human-readable
|
|
58
|
+
* half of a pane's identity. OPTIONAL, and the optionality is load-bearing:
|
|
59
|
+
* a producer older than this field omits it, so a consumer falls back to the
|
|
60
|
+
* pane id rather than rendering an empty title.
|
|
61
|
+
*/
|
|
62
|
+
session_name?: string;
|
|
63
|
+
/** Name of the owning tmux window (`#{window_name}`). Optional for the same reason as `session_name`. */
|
|
64
|
+
window_name?: string;
|
|
65
|
+
/**
|
|
66
|
+
* tmux window index (`#{window_index}`). With `session_name` and `pane_index` it
|
|
67
|
+
* addresses a pane across tmux server restarts, which renumber pane ids.
|
|
68
|
+
* Optional: producers before ironsilk 0.9.35 omit it.
|
|
69
|
+
*/
|
|
70
|
+
window_index?: number | null;
|
|
71
|
+
/** tmux pane index (`#{pane_index}`). Optional for the same reason as `window_index`. */
|
|
72
|
+
pane_index?: number | null;
|
|
73
|
+
/** The agent in this pane, or null for a pane with no agent. Optional: producers before ironsilk 0.9.35 omit it. */
|
|
74
|
+
agent?: TidePaneAgent | null;
|
|
21
75
|
pid: number;
|
|
22
76
|
cwd: string;
|
|
23
77
|
domain_id: string | null;
|
|
@@ -337,4 +391,5 @@ export interface TidePendingApproval {
|
|
|
337
391
|
requires_controller: boolean;
|
|
338
392
|
created_at: string;
|
|
339
393
|
}
|
|
394
|
+
export * from "./secret-redaction.js";
|
|
340
395
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5,4 +5,6 @@ export const TIDE_CLI_COMMAND = "tide";
|
|
|
5
5
|
export const TIDE_STATE_ROOT_ENV = "MIADI_HOME";
|
|
6
6
|
export const TIDE_DEFAULT_STATE_ROOT = "~/.miadi/navigator";
|
|
7
7
|
export const TIDE_DAEMON_CONTRACT_VERSION = "miadi.tide.daemon.v2";
|
|
8
|
+
// ── Credential redaction (jgwill/Miadi#745) ─────────────────────────────────
|
|
9
|
+
export * from "./secret-redaction.js";
|
|
8
10
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,iFAAiF;AAEjF,MAAM,CAAC,MAAM,kBAAkB,GAAG,gDAAgD,CAAA;AAClF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAA;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAA;AAC3D,MAAM,CAAC,MAAM,4BAA4B,GAAG,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,iFAAiF;AAEjF,MAAM,CAAC,MAAM,kBAAkB,GAAG,gDAAgD,CAAA;AAClF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAA;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAA;AAC3D,MAAM,CAAC,MAAM,4BAA4B,GAAG,sBAAsB,CAAA;AAsblE,+EAA+E;AAE/E,cAAc,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type TideSecretRuleKind = "token" | "labelled" | "block";
|
|
2
|
+
export interface TideSecretRule {
|
|
3
|
+
name: string;
|
|
4
|
+
/** token: the whole match is redacted. labelled: group 1 is kept, group 2 is redacted. block: the whole match becomes `replacement`. */
|
|
5
|
+
kind: TideSecretRuleKind;
|
|
6
|
+
/** A regex in the subset JavaScript and Python share. */
|
|
7
|
+
pattern: string;
|
|
8
|
+
/** "" or "i". */
|
|
9
|
+
flags: string;
|
|
10
|
+
replacement?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const TIDE_SECRET_MASK = "***";
|
|
13
|
+
/** Applied top to bottom. */
|
|
14
|
+
export declare const TIDE_SECRET_RULES: readonly TideSecretRule[];
|
|
15
|
+
/** A secret as its first 6 characters (4 when shorter than 7) followed by `***`. */
|
|
16
|
+
export declare function redactSecretValue(value: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Text with every credential the rules know redacted. Running it again changes
|
|
19
|
+
* nothing, so a capture ironsilk already redacted passes through unchanged.
|
|
20
|
+
*/
|
|
21
|
+
export declare function sanitizeSecrets(text: string): string;
|
|
22
|
+
//# sourceMappingURL=secret-redaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-redaction.d.ts","sourceRoot":"","sources":["../src/secret-redaction.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAA;AAE/D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,wIAAwI;IACxI,IAAI,EAAE,kBAAkB,CAAA;IACxB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;IACf,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,gBAAgB,QAAQ,CAAA;AAErC,6BAA6B;AAC7B,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAwBtD,CAAA;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGvD;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAapD"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// Credential redaction for pane captures (jgwill/Miadi#745).
|
|
2
|
+
//
|
|
3
|
+
// schema/secret-redaction.json is the rule list; TIDE_SECRET_RULES mirrors it
|
|
4
|
+
// and test/secret-redaction.test.ts holds the two equal. Change the JSON first.
|
|
5
|
+
// ironsilk carries its own copy (tide_runtime/secret_redaction.json), held equal
|
|
6
|
+
// to the same JSON by its tests.
|
|
7
|
+
export const TIDE_SECRET_MASK = "***";
|
|
8
|
+
/** Applied top to bottom. */
|
|
9
|
+
export const TIDE_SECRET_RULES = [
|
|
10
|
+
{ name: "private-key-block", kind: "block", pattern: "-----BEGIN [^-]*PRIVATE KEY-----[\\s\\S]*?-----END [^-]*PRIVATE KEY-----", flags: "", replacement: "-----BEGIN PRIVATE KEY-----***-----END PRIVATE KEY-----" },
|
|
11
|
+
{ name: "putty-key", kind: "block", pattern: "PuTTY-User-Key-File-[0-9][\\s\\S]*?(?:Private-MAC:[^\\n]*|$)", flags: "", replacement: "PuTTY-User-Key-File-***" },
|
|
12
|
+
{ name: "aws-access-key", kind: "token", pattern: "(?<![A-Za-z0-9])AKIA[0-9A-Z]{16}", flags: "" },
|
|
13
|
+
{ name: "aws-session-key", kind: "token", pattern: "(?<![A-Za-z0-9])ASIA[0-9A-Z]{16}", flags: "" },
|
|
14
|
+
{ name: "github-token", kind: "token", pattern: "(?<![A-Za-z0-9])gh[pousr]_[A-Za-z0-9_]{20,}", flags: "" },
|
|
15
|
+
{ name: "github-pat", kind: "token", pattern: "(?<![A-Za-z0-9])github_pat_[A-Za-z0-9_]{20,}", flags: "" },
|
|
16
|
+
{ name: "gitlab-pat", kind: "token", pattern: "(?<![A-Za-z0-9])glpat-[A-Za-z0-9_-]{18,}", flags: "" },
|
|
17
|
+
{ name: "anthropic-key", kind: "token", pattern: "(?<![A-Za-z0-9])sk-ant-[A-Za-z0-9_-]{20,}", flags: "" },
|
|
18
|
+
{ name: "openai-project-key", kind: "token", pattern: "(?<![A-Za-z0-9])sk-proj-[A-Za-z0-9_-]{20,}", flags: "" },
|
|
19
|
+
{ name: "openai-key", kind: "token", pattern: "(?<![A-Za-z0-9])sk-[A-Za-z0-9_-]{20,}", flags: "" },
|
|
20
|
+
{ name: "slack-token", kind: "token", pattern: "(?<![A-Za-z0-9])xox[baprs]-[A-Za-z0-9-]{10,}", flags: "" },
|
|
21
|
+
{ name: "google-api-key", kind: "token", pattern: "(?<![A-Za-z0-9])AIza[0-9A-Za-z_-]{35}", flags: "" },
|
|
22
|
+
{ name: "google-oauth-token", kind: "token", pattern: "(?<![A-Za-z0-9])ya29\\.[0-9A-Za-z_-]{20,}", flags: "" },
|
|
23
|
+
{ name: "huggingface-token", kind: "token", pattern: "(?<![A-Za-z0-9])hf_[A-Za-z0-9]{20,}", flags: "" },
|
|
24
|
+
{ name: "npm-token", kind: "token", pattern: "(?<![A-Za-z0-9])npm_[A-Za-z0-9]{30,}", flags: "" },
|
|
25
|
+
{ name: "stripe-live-key", kind: "token", pattern: "(?<![A-Za-z0-9])(?:sk|pk|rk)_live_[A-Za-z0-9]{20,}", flags: "" },
|
|
26
|
+
{ name: "digitalocean-token", kind: "token", pattern: "(?<![A-Za-z0-9])dop_v1_[A-Za-z0-9]{32,}", flags: "" },
|
|
27
|
+
{ name: "shopify-token", kind: "token", pattern: "(?<![A-Za-z0-9])shpat_[A-Za-z0-9]{32,}", flags: "" },
|
|
28
|
+
{ name: "medicine-wheel-token", kind: "token", pattern: "(?<![A-Za-z0-9])mwt_[A-Za-z0-9_-]{32,}", flags: "" },
|
|
29
|
+
{ name: "miadi-reader-token", kind: "token", pattern: "(?<![A-Za-z0-9])mr_[A-Za-z0-9]{32,}", flags: "" },
|
|
30
|
+
{ name: "jwt", kind: "token", pattern: "(?<![A-Za-z0-9])eyJ[A-Za-z0-9_-]{8,}\\.[A-Za-z0-9_-]{8,}\\.[A-Za-z0-9_-]{8,}", flags: "" },
|
|
31
|
+
{ name: "bearer", kind: "labelled", pattern: "(\\bBearer\\s+)([A-Za-z0-9._~+/=-]{12,})", flags: "i" },
|
|
32
|
+
{ name: "secret-assignment", kind: "labelled", pattern: "(\\b[A-Za-z0-9_.-]*(?:api[_-]?key|secret|token|passwd|password|client[_-]?secret|access[_-]?key|private[_-]?key|auth[_-]?token)[A-Za-z0-9_.-]*\\b[\"'\\s]*[:=]\\s*[\"']?)([A-Za-z0-9][A-Za-z0-9/_+.=~:-]{7,})", flags: "i" },
|
|
33
|
+
];
|
|
34
|
+
/** A secret as its first 6 characters (4 when shorter than 7) followed by `***`. */
|
|
35
|
+
export function redactSecretValue(value) {
|
|
36
|
+
const keep = value.length >= 7 ? 6 : value.length >= 4 ? 4 : value.length;
|
|
37
|
+
return value.slice(0, keep) + TIDE_SECRET_MASK;
|
|
38
|
+
}
|
|
39
|
+
const compiled = TIDE_SECRET_RULES.map(rule => ({ rule, regex: new RegExp(rule.pattern, rule.flags + "g") }));
|
|
40
|
+
/**
|
|
41
|
+
* Text with every credential the rules know redacted. Running it again changes
|
|
42
|
+
* nothing, so a capture ironsilk already redacted passes through unchanged.
|
|
43
|
+
*/
|
|
44
|
+
export function sanitizeSecrets(text) {
|
|
45
|
+
let out = text;
|
|
46
|
+
for (const { rule, regex } of compiled) {
|
|
47
|
+
if (rule.kind === "block") {
|
|
48
|
+
const replacement = rule.replacement ?? TIDE_SECRET_MASK;
|
|
49
|
+
out = out.replace(regex, () => replacement);
|
|
50
|
+
}
|
|
51
|
+
else if (rule.kind === "labelled") {
|
|
52
|
+
out = out.replace(regex, (_match, label, value) => label + redactSecretValue(value));
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
out = out.replace(regex, match => redactSecretValue(match));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return out;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=secret-redaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-redaction.js","sourceRoot":"","sources":["../src/secret-redaction.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@miadi/tide-contract",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"description": "Schema-first Tide API contract shared by Miadi and the IronSilk tide runtime.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"import": "./dist/index.js"
|
|
16
16
|
},
|
|
17
17
|
"./schema/tide-api.schema.json": "./schema/tide-api.schema.json",
|
|
18
|
+
"./schema/secret-redaction.json": "./schema/secret-redaction.json",
|
|
18
19
|
"./package.json": "./package.json"
|
|
19
20
|
},
|
|
20
21
|
"files": [
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "Ordered credential-redaction rules for pane captures (jgwill/Miadi#745). Applied top to bottom. Patterns use the regex subset JavaScript and Python share. 'token': the whole match is redacted. 'labelled': group 1 is kept and group 2 is redacted. 'block': the whole match becomes 'replacement'. A redacted value keeps its first 6 characters (4 when shorter than 7) followed by '***'. Mirrors jgwill/miadi-orchestration-kit claude/miadi-session-observability/hooks/secret_capture_sanitizer.sh, with a left boundary on prefixed tokens. src/secret-redaction.ts and ironsilk's tide_runtime/secret_redaction.json are held equal to this file by tests.",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"mask": "***",
|
|
5
|
+
"rules": [
|
|
6
|
+
{ "name": "private-key-block", "kind": "block", "pattern": "-----BEGIN [^-]*PRIVATE KEY-----[\\s\\S]*?-----END [^-]*PRIVATE KEY-----", "flags": "", "replacement": "-----BEGIN PRIVATE KEY-----***-----END PRIVATE KEY-----" },
|
|
7
|
+
{ "name": "putty-key", "kind": "block", "pattern": "PuTTY-User-Key-File-[0-9][\\s\\S]*?(?:Private-MAC:[^\\n]*|$)", "flags": "", "replacement": "PuTTY-User-Key-File-***" },
|
|
8
|
+
{ "name": "aws-access-key", "kind": "token", "pattern": "(?<![A-Za-z0-9])AKIA[0-9A-Z]{16}", "flags": "" },
|
|
9
|
+
{ "name": "aws-session-key", "kind": "token", "pattern": "(?<![A-Za-z0-9])ASIA[0-9A-Z]{16}", "flags": "" },
|
|
10
|
+
{ "name": "github-token", "kind": "token", "pattern": "(?<![A-Za-z0-9])gh[pousr]_[A-Za-z0-9_]{20,}", "flags": "" },
|
|
11
|
+
{ "name": "github-pat", "kind": "token", "pattern": "(?<![A-Za-z0-9])github_pat_[A-Za-z0-9_]{20,}", "flags": "" },
|
|
12
|
+
{ "name": "gitlab-pat", "kind": "token", "pattern": "(?<![A-Za-z0-9])glpat-[A-Za-z0-9_-]{18,}", "flags": "" },
|
|
13
|
+
{ "name": "anthropic-key", "kind": "token", "pattern": "(?<![A-Za-z0-9])sk-ant-[A-Za-z0-9_-]{20,}", "flags": "" },
|
|
14
|
+
{ "name": "openai-project-key", "kind": "token", "pattern": "(?<![A-Za-z0-9])sk-proj-[A-Za-z0-9_-]{20,}", "flags": "" },
|
|
15
|
+
{ "name": "openai-key", "kind": "token", "pattern": "(?<![A-Za-z0-9])sk-[A-Za-z0-9_-]{20,}", "flags": "" },
|
|
16
|
+
{ "name": "slack-token", "kind": "token", "pattern": "(?<![A-Za-z0-9])xox[baprs]-[A-Za-z0-9-]{10,}", "flags": "" },
|
|
17
|
+
{ "name": "google-api-key", "kind": "token", "pattern": "(?<![A-Za-z0-9])AIza[0-9A-Za-z_-]{35}", "flags": "" },
|
|
18
|
+
{ "name": "google-oauth-token", "kind": "token", "pattern": "(?<![A-Za-z0-9])ya29\\.[0-9A-Za-z_-]{20,}", "flags": "" },
|
|
19
|
+
{ "name": "huggingface-token", "kind": "token", "pattern": "(?<![A-Za-z0-9])hf_[A-Za-z0-9]{20,}", "flags": "" },
|
|
20
|
+
{ "name": "npm-token", "kind": "token", "pattern": "(?<![A-Za-z0-9])npm_[A-Za-z0-9]{30,}", "flags": "" },
|
|
21
|
+
{ "name": "stripe-live-key", "kind": "token", "pattern": "(?<![A-Za-z0-9])(?:sk|pk|rk)_live_[A-Za-z0-9]{20,}", "flags": "" },
|
|
22
|
+
{ "name": "digitalocean-token", "kind": "token", "pattern": "(?<![A-Za-z0-9])dop_v1_[A-Za-z0-9]{32,}", "flags": "" },
|
|
23
|
+
{ "name": "shopify-token", "kind": "token", "pattern": "(?<![A-Za-z0-9])shpat_[A-Za-z0-9]{32,}", "flags": "" },
|
|
24
|
+
{ "name": "medicine-wheel-token", "kind": "token", "pattern": "(?<![A-Za-z0-9])mwt_[A-Za-z0-9_-]{32,}", "flags": "" },
|
|
25
|
+
{ "name": "miadi-reader-token", "kind": "token", "pattern": "(?<![A-Za-z0-9])mr_[A-Za-z0-9]{32,}", "flags": "" },
|
|
26
|
+
{ "name": "jwt", "kind": "token", "pattern": "(?<![A-Za-z0-9])eyJ[A-Za-z0-9_-]{8,}\\.[A-Za-z0-9_-]{8,}\\.[A-Za-z0-9_-]{8,}", "flags": "" },
|
|
27
|
+
{ "name": "bearer", "kind": "labelled", "pattern": "(\\bBearer\\s+)([A-Za-z0-9._~+/=-]{12,})", "flags": "i" },
|
|
28
|
+
{ "name": "secret-assignment", "kind": "labelled", "pattern": "(\\b[A-Za-z0-9_.-]*(?:api[_-]?key|secret|token|passwd|password|client[_-]?secret|access[_-]?key|private[_-]?key|auth[_-]?token)[A-Za-z0-9_.-]*\\b[\"'\\s]*[:=]\\s*[\"']?)([A-Za-z0-9][A-Za-z0-9/_+.=~:-]{7,})", "flags": "i" }
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -132,6 +132,32 @@
|
|
|
132
132
|
"created_at": { "type": "string" }
|
|
133
133
|
}
|
|
134
134
|
},
|
|
135
|
+
"paneAgentState": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"enum": ["running", "exited", "lost"],
|
|
138
|
+
"description": "running: the agent's process is in the pane now. exited: its last binding line since the tmux server started is session.end. lost: any other last line, with no live process."
|
|
139
|
+
},
|
|
140
|
+
"paneAgent": {
|
|
141
|
+
"type": "object",
|
|
142
|
+
"additionalProperties": true,
|
|
143
|
+
"description": "The agent that runs, or ran, in one tmux pane (ironsilk 0.9.35+, tide_runtime/pane_agents.py). Running claude agents are read from ~/.claude/sessions/<pid>.json, the others from the binding lines under <sessiondata>/data/terminal_bindings.jsonl, so the optional fields differ by source.",
|
|
144
|
+
"required": ["kind", "state", "session_id"],
|
|
145
|
+
"properties": {
|
|
146
|
+
"kind": { "type": "string", "description": "Agent program: claude, hermes, pi, …" },
|
|
147
|
+
"state": { "$ref": "#/$defs/paneAgentState" },
|
|
148
|
+
"session_id": { "type": "string" },
|
|
149
|
+
"name": { "type": "string", "description": "Session name (/rename); empty when unnamed." },
|
|
150
|
+
"name_source": { "type": "string" },
|
|
151
|
+
"status": { "type": "string", "description": "Claude Code's own status for a running session." },
|
|
152
|
+
"updated_at": { "type": ["number", "string", "null"], "description": "Last activity: epoch milliseconds from Claude Code, epoch seconds from a binding line, or null." },
|
|
153
|
+
"pid": { "type": "integer" },
|
|
154
|
+
"cwd": { "type": "string" },
|
|
155
|
+
"argv": { "type": "array", "items": { "type": "string" } },
|
|
156
|
+
"launch_alias": { "type": "string", "description": "Shell alias the agent was launched with (MIADI_LAUNCH_ALIAS); empty when unknown." },
|
|
157
|
+
"at": { "type": "string", "description": "Timestamp of the binding line this record came from." },
|
|
158
|
+
"reason": { "type": "string", "description": "Source of the binding line." }
|
|
159
|
+
}
|
|
160
|
+
},
|
|
135
161
|
"terminalContext": {
|
|
136
162
|
"type": "object",
|
|
137
163
|
"additionalProperties": false,
|
|
@@ -150,6 +176,9 @@
|
|
|
150
176
|
"tmux_pane": { "type": "string", "pattern": "^(%?[0-9]+|[0-9]+-[0-9]+|w[0-9A-Za-z]+:p[0-9A-Za-z]+)$", "description": "Pane id in the owning multiplexer: tmux (e.g., '%56') or herdr (e.g., 'w1:p2' as of herdr 0.7; legacy '1-2' accepted). Field name is historical." },
|
|
151
177
|
"session_name": { "type": "string", "description": "Name of the owning tmux session (#{session_name}) — the human-readable half of a pane's identity, which the pane id alone does not carry. OPTIONAL: a producer older than this field omits it, and a consumer must fall back to the pane id rather than render an empty title." },
|
|
152
178
|
"window_name": { "type": "string", "description": "Name of the owning tmux window (#{window_name}). Optional for the same reason as session_name." },
|
|
179
|
+
"window_index": { "type": ["integer", "null"], "description": "tmux window index (#{window_index}). With session_name and pane_index it addresses a pane across tmux server restarts, which renumber pane ids. Optional: producers before ironsilk 0.9.35 omit it." },
|
|
180
|
+
"pane_index": { "type": ["integer", "null"], "description": "tmux pane index (#{pane_index}). Optional for the same reason as window_index." },
|
|
181
|
+
"agent": { "oneOf": [{ "$ref": "#/$defs/paneAgent" }, { "type": "null" }], "description": "The agent in this pane, or null for a pane with no agent. Optional: producers before ironsilk 0.9.35 omit it." },
|
|
153
182
|
"pid": { "type": "integer" },
|
|
154
183
|
"cwd": { "type": "string" },
|
|
155
184
|
"domain_id": { "type": ["string", "null"] },
|