@omnitype-code/adapter-sdk 2.0.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 (46) hide show
  1. package/README.md +163 -0
  2. package/dist/adapters/filesystem-only.d.ts +30 -0
  3. package/dist/adapters/filesystem-only.d.ts.map +1 -0
  4. package/dist/adapters/filesystem-only.js +115 -0
  5. package/dist/adapters/filesystem-only.js.map +1 -0
  6. package/dist/adapters/hook-poller.d.ts +40 -0
  7. package/dist/adapters/hook-poller.d.ts.map +1 -0
  8. package/dist/adapters/hook-poller.js +125 -0
  9. package/dist/adapters/hook-poller.js.map +1 -0
  10. package/dist/adapters/index.d.ts +34 -0
  11. package/dist/adapters/index.d.ts.map +1 -0
  12. package/dist/adapters/index.js +61 -0
  13. package/dist/adapters/index.js.map +1 -0
  14. package/dist/adapters/stdin-json-hook-tool.d.ts +87 -0
  15. package/dist/adapters/stdin-json-hook-tool.d.ts.map +1 -0
  16. package/dist/adapters/stdin-json-hook-tool.js +491 -0
  17. package/dist/adapters/stdin-json-hook-tool.js.map +1 -0
  18. package/dist/adapters/transcript-scavenger.d.ts +40 -0
  19. package/dist/adapters/transcript-scavenger.d.ts.map +1 -0
  20. package/dist/adapters/transcript-scavenger.js +569 -0
  21. package/dist/adapters/transcript-scavenger.js.map +1 -0
  22. package/dist/classifier.d.ts +132 -0
  23. package/dist/classifier.d.ts.map +1 -0
  24. package/dist/classifier.js +95 -0
  25. package/dist/classifier.js.map +1 -0
  26. package/dist/index.d.ts +8 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +8 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/loader.d.ts +51 -0
  31. package/dist/loader.d.ts.map +1 -0
  32. package/dist/loader.js +352 -0
  33. package/dist/loader.js.map +1 -0
  34. package/dist/manifest.d.ts +131 -0
  35. package/dist/manifest.d.ts.map +1 -0
  36. package/dist/manifest.js +12 -0
  37. package/dist/manifest.js.map +1 -0
  38. package/dist/normalize.d.ts +51 -0
  39. package/dist/normalize.d.ts.map +1 -0
  40. package/dist/normalize.js +122 -0
  41. package/dist/normalize.js.map +1 -0
  42. package/dist/tier.d.ts +12 -0
  43. package/dist/tier.d.ts.map +1 -0
  44. package/dist/tier.js +62 -0
  45. package/dist/tier.js.map +1 -0
  46. package/package.json +36 -0
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Normalize-spec interpreter.
3
+ *
4
+ * Adapters declare `normalize` rules in their manifest. This interpreter
5
+ * runs those rules against raw tool-native payloads and produces canonical events.
6
+ *
7
+ * Mapping value types:
8
+ * "$.field.path" — JSONPath-style extraction from raw payload
9
+ * { literal: value } — constant value
10
+ * { from_string: ... } — build a Splice from string content
11
+ *
12
+ * This keeps community adapters reviewable (no arbitrary code), and lets
13
+ * the daemon handle new tools without a code release — just a manifest update.
14
+ */
15
+ export function applyNormalize(rules, raw) {
16
+ const results = [];
17
+ for (const rule of rules) {
18
+ if (!matchesFilter(rule.match, raw))
19
+ continue;
20
+ const body = buildBody(rule, raw);
21
+ if (body)
22
+ results.push(body);
23
+ }
24
+ return results;
25
+ }
26
+ function matchesFilter(filter, raw) {
27
+ for (const [k, v] of Object.entries(filter)) {
28
+ if (v === undefined)
29
+ continue;
30
+ const actual = getPath(raw, k);
31
+ if (actual !== v)
32
+ return false;
33
+ }
34
+ return true;
35
+ }
36
+ function buildBody(rule, raw) {
37
+ const type = rule.emit.type;
38
+ const result = { type };
39
+ for (const [field, spec] of Object.entries(rule.emit.mapping)) {
40
+ if (typeof spec === 'string') {
41
+ result[field] = getPath(raw, spec);
42
+ }
43
+ else if (typeof spec === 'object' && spec !== null && 'literal' in spec) {
44
+ result[field] = spec.literal;
45
+ }
46
+ else if (typeof spec === 'object' && spec !== null && 'from_string' in spec) {
47
+ result[field] = buildSpliceFromString(raw, spec);
48
+ }
49
+ }
50
+ return result;
51
+ }
52
+ function buildSpliceFromString(raw, spec) {
53
+ const s = spec.from_string;
54
+ const content = typeof s['content'] === 'string' ? getPath(raw, s['content']) : '';
55
+ const prevLen = s['previous_length'] ? Number(getPath(raw, s['previous_length'])) : 0;
56
+ return [
57
+ {
58
+ offset: 0,
59
+ delete_len: prevLen,
60
+ insert_text: content ?? '',
61
+ },
62
+ ];
63
+ }
64
+ /** Simple dot-path + array-index extraction. Supports "$." prefix and "||" fallbacks. */
65
+ function getPath(obj, path) {
66
+ // Handle "$.a||$.b" fallback syntax
67
+ if (path.includes('||')) {
68
+ for (const part of path.split('||')) {
69
+ const v = getPath(obj, part.trim());
70
+ if (v !== undefined && v !== null)
71
+ return v;
72
+ }
73
+ return undefined;
74
+ }
75
+ const clean = path.startsWith('$.') ? path.slice(2) : path;
76
+ if (!clean)
77
+ return obj;
78
+ const parts = clean.split('.');
79
+ let cur = obj;
80
+ for (const part of parts) {
81
+ if (cur === null || cur === undefined)
82
+ return undefined;
83
+ cur = cur[part];
84
+ }
85
+ return cur;
86
+ }
87
+ export function hookPayloadToSessionEvent(payload, tool) {
88
+ // Antigravity uses conversationId; legacy tools use session_id / sessionId
89
+ const session_id = payload.conversationId ?? payload.session_id ?? payload.sessionId;
90
+ const model = payload.model ?? '';
91
+ if (!session_id)
92
+ return null;
93
+ return { session_id, model };
94
+ }
95
+ export function hookPayloadToFilePath(payload) {
96
+ return (
97
+ // Antigravity: write_to_file / replace_file_content / multi_replace_file_content
98
+ payload.toolCall?.args?.TargetFile ??
99
+ // Legacy Claude Code / Gemini format
100
+ payload.tool_input?.path ??
101
+ payload.tool_input?.file_path ??
102
+ null);
103
+ }
104
+ export function hookPayloadToSplices(payload) {
105
+ const content = payload.tool_input?.content ?? payload.tool_input?.new_content ?? '';
106
+ const prevLen = (payload.tool_input?.old_content ?? '').length;
107
+ return [
108
+ { offset: 0, delete_len: prevLen, insert_text: content },
109
+ ];
110
+ }
111
+ export function isWriteToolCall(toolName) {
112
+ if (!toolName)
113
+ return false;
114
+ const lower = toolName.toLowerCase();
115
+ // Exact Antigravity tool names first (avoid false positives from substring match)
116
+ if (lower === 'write_to_file' || lower === 'replace_file_content' || lower === 'multi_replace_file_content')
117
+ return true;
118
+ const write = ['write', 'edit', 'multiedit', 'create_file', 'write_file',
119
+ 'patch_apply', 'file_write', 'edit_file', 'str_replace', 'str_replace_editor'];
120
+ return write.some((w) => lower.includes(w));
121
+ }
122
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
package/dist/tier.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Tier computation.
3
+ *
4
+ * Tiers are derived from capability evidence — never declared by the adapter.
5
+ * The same adapter can produce different tiers per event depending on which
6
+ * capabilities it managed to provide for that specific edit.
7
+ */
8
+ import type { CapabilitySet, TrustCircle } from './manifest.js';
9
+ import type { Tier } from '@omnitype-code/journal';
10
+ export declare function computeTier(caps: CapabilitySet, trustCircle: TrustCircle): Tier;
11
+ export declare function tierFromCaps(caps: CapabilitySet, trustCircle: TrustCircle): Tier;
12
+ //# sourceMappingURL=tier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier.d.ts","sourceRoot":"","sources":["../src/tier.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAgB,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AA2BnD,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CAkC/E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CAEhF"}
package/dist/tier.js ADDED
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Tier computation.
3
+ *
4
+ * Tiers are derived from capability evidence — never declared by the adapter.
5
+ * The same adapter can produce different tiers per event depending on which
6
+ * capabilities it managed to provide for that specific edit.
7
+ */
8
+ const TIER_RULES = [
9
+ { capability: 'integrity.in_process', score: 40, required: false },
10
+ { capability: 'integrity.signed_events', score: 30 },
11
+ { capability: 'operation.editOp.exact', score: 15 },
12
+ { capability: 'attest.process_ancestry', score: 10 },
13
+ { capability: 'operation.preHash_postHash', score: 10 },
14
+ { capability: 'model.visible.per_call', score: 10 },
15
+ { capability: 'session.id', score: 5 },
16
+ { capability: 'hook.preToolUse', score: 5 },
17
+ { capability: 'txn.boundaries', score: 5 },
18
+ { capability: 'tool.process_tracking', score: 5 },
19
+ ];
20
+ // Base capability required for an EditOp to be admitted at all
21
+ const BASE_REQUIRED = 'operation.editOp';
22
+ const TIER_ORDER = ['T0', 'T1', 'T2', 'T3'];
23
+ const TRUST_CEILINGS = { 1: 'T0', 2: 'T1', 3: 'T2', 4: 'T3' };
24
+ export function computeTier(caps, trustCircle) {
25
+ // Base check: must be able to produce an EditOp
26
+ const base = caps.get(BASE_REQUIRED);
27
+ if (!base || base.status !== 'available')
28
+ return 'T3';
29
+ let score = 0;
30
+ let hasInProcess = false;
31
+ for (const rule of TIER_RULES) {
32
+ const ev = caps.get(rule.capability);
33
+ if (ev?.status === 'available') {
34
+ score += rule.score;
35
+ if (rule.capability === 'integrity.in_process')
36
+ hasInProcess = true;
37
+ }
38
+ }
39
+ // Trust circle ceiling: community adapters (circle 3+) cannot reach T0/T1
40
+ let tier;
41
+ if (score >= 80 && hasInProcess && trustCircle <= 2) {
42
+ tier = 'T0';
43
+ }
44
+ else if (score >= 60) {
45
+ tier = 'T1';
46
+ }
47
+ else if (score >= 30) {
48
+ tier = 'T2';
49
+ }
50
+ else {
51
+ tier = 'T3';
52
+ }
53
+ const ceiling = TRUST_CEILINGS[trustCircle];
54
+ if (TIER_ORDER.indexOf(tier) < TIER_ORDER.indexOf(ceiling)) {
55
+ tier = ceiling;
56
+ }
57
+ return tier;
58
+ }
59
+ export function tierFromCaps(caps, trustCircle) {
60
+ return computeTier(caps, trustCircle);
61
+ }
62
+ //# sourceMappingURL=tier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier.js","sourceRoot":"","sources":["../src/tier.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,MAAM,UAAU,GAAe;IAC7B,EAAE,UAAU,EAAE,sBAAsB,EAAQ,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IACxE,EAAE,UAAU,EAAE,yBAAyB,EAAK,KAAK,EAAE,EAAE,EAAE;IACvD,EAAE,UAAU,EAAE,wBAAwB,EAAM,KAAK,EAAE,EAAE,EAAE;IACvD,EAAE,UAAU,EAAE,yBAAyB,EAAK,KAAK,EAAE,EAAE,EAAE;IACvD,EAAE,UAAU,EAAE,4BAA4B,EAAE,KAAK,EAAE,EAAE,EAAE;IACvD,EAAE,UAAU,EAAE,wBAAwB,EAAM,KAAK,EAAE,EAAE,EAAE;IACvD,EAAE,UAAU,EAAE,YAAY,EAAkB,KAAK,EAAE,CAAC,EAAG;IACvD,EAAE,UAAU,EAAE,iBAAiB,EAAa,KAAK,EAAE,CAAC,EAAG;IACvD,EAAE,UAAU,EAAE,gBAAgB,EAAc,KAAK,EAAE,CAAC,EAAG;IACvD,EAAE,UAAU,EAAE,uBAAuB,EAAO,KAAK,EAAE,CAAC,EAAG;CACxD,CAAC;AAEF,+DAA+D;AAC/D,MAAM,aAAa,GAAiB,kBAAkB,CAAC;AAEvD,MAAM,UAAU,GAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AACtE,MAAM,cAAc,GAA8B,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAEzF,MAAM,UAAU,WAAW,CAAC,IAAmB,EAAE,WAAwB;IACvE,gDAAgD;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAEtD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,EAAE,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;YAC/B,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;YACpB,IAAI,IAAI,CAAC,UAAU,KAAK,sBAAsB;gBAAE,YAAY,GAAG,IAAI,CAAC;QACtE,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,IAAI,IAAU,CAAC;IACf,IAAI,KAAK,IAAI,EAAE,IAAI,YAAY,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACpD,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QACvB,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QACvB,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,IAAI,GAAG,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAmB,EAAE,WAAwB;IACxE,OAAO,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACxC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@omnitype-code/adapter-sdk",
3
+ "version": "2.0.0",
4
+ "description": "OmniType v2 — SDK for writing tool adapters",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "typecheck": "tsc --noEmit",
15
+ "prepublishOnly": "npm run build"
16
+ },
17
+ "dependencies": {
18
+ "@omnitype-code/journal": "^2.0.0"
19
+ },
20
+ "devDependencies": {
21
+ "@types/node": "^22.0.0",
22
+ "typescript": "~5.9.3"
23
+ },
24
+ "engines": {
25
+ "node": ">=20.0.0"
26
+ },
27
+ "publishConfig": {
28
+ "access": "public",
29
+ "registry": "https://registry.npmjs.org/"
30
+ },
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "https://github.com/omnitype-code/omnitype-v2"
34
+ },
35
+ "keywords": ["attribution", "ai-coding", "adapter", "provenance", "manifest"]
36
+ }