@gajae-code/coding-agent 0.7.1 → 0.7.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.
Files changed (92) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/types/cli/notify-cli.d.ts +2 -0
  3. package/dist/types/config/settings-schema.d.ts +39 -2
  4. package/dist/types/extensibility/shared-events.d.ts +1 -0
  5. package/dist/types/gjc-runtime/ralplan-runtime.d.ts +1 -1
  6. package/dist/types/lsp/types.d.ts +2 -0
  7. package/dist/types/notifications/attachment-registry.d.ts +17 -0
  8. package/dist/types/notifications/chat-adapters.d.ts +9 -0
  9. package/dist/types/notifications/config.d.ts +9 -1
  10. package/dist/types/notifications/engine.d.ts +59 -0
  11. package/dist/types/notifications/managed-daemon.d.ts +48 -0
  12. package/dist/types/notifications/telegram-daemon.d.ts +19 -0
  13. package/dist/types/notifications/threaded-inbound.d.ts +19 -0
  14. package/dist/types/notifications/threaded-render.d.ts +6 -1
  15. package/dist/types/session/agent-session.d.ts +2 -0
  16. package/dist/types/tools/fetch.d.ts +23 -0
  17. package/dist/types/tools/index.d.ts +1 -0
  18. package/dist/types/tools/telegram-send.d.ts +32 -0
  19. package/dist/types/web/insane/bridge.d.ts +103 -0
  20. package/dist/types/web/insane/url-guard.d.ts +22 -0
  21. package/dist/types/web/search/provider.d.ts +18 -1
  22. package/dist/types/web/search/providers/insane.d.ts +53 -0
  23. package/dist/types/web/search/providers/text-citations.d.ts +23 -0
  24. package/dist/types/web/search/types.d.ts +12 -4
  25. package/package.json +10 -8
  26. package/scripts/verify-insane-vendor.ts +132 -0
  27. package/src/cli/args.ts +1 -1
  28. package/src/cli/fast-help.ts +1 -1
  29. package/src/cli/notify-cli.ts +152 -5
  30. package/src/commands/team.ts +1 -1
  31. package/src/config/settings-schema.ts +30 -1
  32. package/src/defaults/gjc/skills/ralplan/SKILL.md +11 -4
  33. package/src/extensibility/shared-events.ts +1 -0
  34. package/src/gjc-runtime/launch-tmux.ts +17 -3
  35. package/src/gjc-runtime/ledger-event-renderer.ts +1 -0
  36. package/src/gjc-runtime/ralplan-runtime.ts +2 -2
  37. package/src/gjc-runtime/workflow-manifest.generated.json +29 -0
  38. package/src/gjc-runtime/workflow-manifest.ts +7 -2
  39. package/src/internal-urls/docs-index.generated.ts +7 -7
  40. package/src/lsp/config.ts +16 -3
  41. package/src/lsp/defaults.json +7 -0
  42. package/src/lsp/types.ts +2 -0
  43. package/src/modes/controllers/event-controller.ts +15 -0
  44. package/src/modes/interactive-mode.ts +46 -2
  45. package/src/modes/utils/context-usage.ts +2 -2
  46. package/src/notifications/attachment-registry.ts +23 -0
  47. package/src/notifications/chat-adapters.ts +147 -0
  48. package/src/notifications/config.ts +23 -2
  49. package/src/notifications/engine.ts +100 -0
  50. package/src/notifications/index.ts +180 -38
  51. package/src/notifications/managed-daemon.ts +163 -0
  52. package/src/notifications/telegram-daemon.ts +235 -14
  53. package/src/notifications/threaded-inbound.ts +60 -4
  54. package/src/notifications/threaded-render.ts +20 -2
  55. package/src/session/agent-session.ts +82 -51
  56. package/src/tools/fetch.ts +78 -1
  57. package/src/tools/index.ts +3 -0
  58. package/src/tools/telegram-send.ts +137 -0
  59. package/src/web/insane/bridge.ts +350 -0
  60. package/src/web/insane/url-guard.ts +155 -0
  61. package/src/web/search/provider.ts +77 -18
  62. package/src/web/search/providers/anthropic.ts +70 -3
  63. package/src/web/search/providers/codex.ts +1 -119
  64. package/src/web/search/providers/gemini.ts +99 -0
  65. package/src/web/search/providers/insane.ts +551 -0
  66. package/src/web/search/providers/openai-compatible.ts +66 -32
  67. package/src/web/search/providers/text-citations.ts +111 -0
  68. package/src/web/search/types.ts +13 -2
  69. package/vendor/insane-search/LICENSE +21 -0
  70. package/vendor/insane-search/MANIFEST.json +24 -0
  71. package/vendor/insane-search/engine/__init__.py +23 -0
  72. package/vendor/insane-search/engine/__main__.py +128 -0
  73. package/vendor/insane-search/engine/bias_check.py +183 -0
  74. package/vendor/insane-search/engine/executor.py +254 -0
  75. package/vendor/insane-search/engine/fetch_chain.py +725 -0
  76. package/vendor/insane-search/engine/learning.py +175 -0
  77. package/vendor/insane-search/engine/phase0.py +214 -0
  78. package/vendor/insane-search/engine/safety.py +91 -0
  79. package/vendor/insane-search/engine/templates/package.json +11 -0
  80. package/vendor/insane-search/engine/templates/playwright_mobile_chrome.js +188 -0
  81. package/vendor/insane-search/engine/templates/playwright_real_chrome.js +243 -0
  82. package/vendor/insane-search/engine/tests/test_hardening.py +57 -0
  83. package/vendor/insane-search/engine/tests/test_smoke.py +152 -0
  84. package/vendor/insane-search/engine/tests/test_u1.py +200 -0
  85. package/vendor/insane-search/engine/tests/test_u4.py +131 -0
  86. package/vendor/insane-search/engine/tests/test_u5.py +163 -0
  87. package/vendor/insane-search/engine/tests/test_u7.py +124 -0
  88. package/vendor/insane-search/engine/transport.py +211 -0
  89. package/vendor/insane-search/engine/url_transforms.py +98 -0
  90. package/vendor/insane-search/engine/validators.py +331 -0
  91. package/vendor/insane-search/engine/waf_detector.py +214 -0
  92. package/vendor/insane-search/engine/waf_profiles.yaml +162 -0
@@ -0,0 +1,162 @@
1
+ # WAF Product Profiles — never site-specific.
2
+ #
3
+ # NO-SITE-NAME RULE:
4
+ # * Key names are WAF products (akamai_bot_manager), not sites.
5
+ # * Detectors use product artifacts (cookies / headers / vendor strings).
6
+ # * Field values (markers, cookie names) must appear in any site running
7
+ # that WAF, not just one. If a value only fits one site, it belongs
8
+ # to runtime hints / observations, not this file.
9
+ #
10
+ # Profiles are *recommendations*, not deterministic recipes. The planner
11
+ # treats them as priors; attempts always evaluate real responses.
12
+ #
13
+ # Timestamp each profile entry. If stale (> 6 months), cross-validate.
14
+
15
+ _meta:
16
+ schema_version: 1
17
+ last_reviewed: "2026-04-21"
18
+
19
+ akamai_bot_manager:
20
+ detectors:
21
+ cookie: ["_abck", "bm_sz", "ak_bmsc", "bm_sv", "bm_so"]
22
+ header: ["X-Akamai-*"]
23
+ server_contains: ["AkamaiGHost"]
24
+ body: ["sec-if-cpt-container", "Powered and protected by Akamai"]
25
+ confidence_rules:
26
+ # Multi-signal gating — single marker insufficient.
27
+ strong: 2 # any 2 signals from above → confidence 0.9
28
+ weak: 1 # 1 signal → confidence 0.6
29
+ capabilities_needed:
30
+ - needs_real_tls_stack # Playwright Chromium (BoringSSL) is detected
31
+ - needs_js_exec # 2.6KB challenge requires JS sensor
32
+ tls_impersonate_candidates:
33
+ # Every impersonate target curl_cffi supports that historically yielded
34
+ # at least a challenge page (i.e. IP still alive) rather than an outright
35
+ # TLS reject. Grouped by family; planner tries top groups first.
36
+ # Refresh quarterly — vendor WAFs shift which TLS fingerprints they trust.
37
+ - [safari, safari15_3, safari15_5, safari17_0, safari260]
38
+ - [safari_ios, safari17_2_ios, safari260_ios]
39
+ - [chrome99, chrome100, chrome101, chrome104, chrome110, chrome116, chrome119, chrome124, chrome131, chrome133a, chrome136, chrome145, chrome146]
40
+ - [chrome_android, chrome131_android]
41
+ - [edge99, edge101]
42
+ tls_impersonate_avoid:
43
+ # Empirically observed to 403 immediately (TLS fingerprint blacklisted).
44
+ # DO NOT hard-block — planner deprioritizes only. Refresh quarterly.
45
+ - safari18_0
46
+ - chrome107
47
+ - chrome120
48
+ - chrome123
49
+ - chrome145 # curl_cffi 0.11+ needed — mark avoid for older installs
50
+ - chrome146
51
+ - firefox
52
+ - firefox133
53
+ - firefox135
54
+ referer_strategies:
55
+ - self_root # scheme://host/
56
+ url_transform_order:
57
+ - original
58
+ - mobile_subdomain # www.* → m.* — strong observational win in SSR sites
59
+ fallback_when_challenge:
60
+ - curl_grid_exhaust # try more impersonate × referer × url combos
61
+ - playwright_real_chrome
62
+ notes: |
63
+ DO NOT encode site-specific selectors or byte-size fingerprints here.
64
+ Those belong to caller's success_selectors param or observations log.
65
+
66
+ cloudflare_turnstile:
67
+ detectors:
68
+ cookie: ["cf_clearance", "__cf_bm", "__cfduid"]
69
+ header: ["cf-ray", "cf-cache-status"]
70
+ server_contains: ["cloudflare"]
71
+ body: ["Just a moment...", "Checking your browser", "cf-chl-bypass", "Attention Required! | Cloudflare"]
72
+ capabilities_needed:
73
+ - needs_js_exec # MCP Playwright Chromium OK — no real-TLS required
74
+ tls_impersonate_candidates:
75
+ - [chrome, chrome_android]
76
+ referer_strategies:
77
+ - google_search
78
+ - self_root
79
+ fallback_when_challenge:
80
+ - playwright_mcp # MCP sufficient; Chromium TLS passes CF baseline
81
+ - playwright_real_chrome
82
+
83
+ f5_big_ip:
84
+ detectors:
85
+ cookie: ["BigIPServer", "TS01*", "F5_*"]
86
+ body: ["The requested URL was rejected", "support ID is:"]
87
+ capabilities_needed:
88
+ - needs_real_tls_stack
89
+ tls_impersonate_candidates:
90
+ - [safari, chrome]
91
+ referer_strategies:
92
+ - self_root
93
+
94
+ aws_waf:
95
+ detectors:
96
+ cookie: ["aws-waf-token"]
97
+ header: ["x-amzn-requestid", "x-amzn-errortype", "x-amzn-waf-*"]
98
+ capabilities_needed:
99
+ - needs_real_tls_stack
100
+ tls_impersonate_candidates:
101
+ - [chrome]
102
+ referer_strategies:
103
+ - self_root
104
+
105
+ datadome_probable:
106
+ detectors:
107
+ cookie: ["datadome"]
108
+ body: ["DataDome"]
109
+ capabilities_needed:
110
+ - needs_real_tls_stack
111
+ - needs_js_exec
112
+ tls_impersonate_candidates:
113
+ - [safari, chrome]
114
+ fallback_when_challenge:
115
+ - playwright_real_chrome
116
+ notes: |
117
+ "_probable" suffix reminds us this is a growing attack surface — mark
118
+ as tentative until cross-site evidence accumulates in observations/.
119
+
120
+ perimeterx_human:
121
+ detectors:
122
+ cookie: ["_px3", "_pxhd", "_px2", "pxcts"]
123
+ body: ["px-captcha", "Press & Hold to confirm you are a human"]
124
+ capabilities_needed:
125
+ - needs_real_tls_stack
126
+ - needs_js_exec
127
+ tls_impersonate_candidates:
128
+ - [safari, chrome]
129
+ fallback_when_challenge:
130
+ - playwright_real_chrome
131
+ notes: |
132
+ PerimeterX (now HUMAN Bot Defender). Distinct cookie family from
133
+ DataDome. Keep profiles separate so planner does not pick wrong
134
+ fallback strategy.
135
+
136
+ # ---------------------------------------------------------------------------
137
+ # Safety net: always-valid fallback profile.
138
+ # ---------------------------------------------------------------------------
139
+ unknown_challenge:
140
+ detectors: {} # never matches actively — used only when no other profile fires
141
+ confidence_rules:
142
+ strong: 0
143
+ weak: 0
144
+ capabilities_needed:
145
+ - needs_js_exec # conservative default
146
+ tls_impersonate_candidates:
147
+ - [safari, chrome, firefox]
148
+ - [safari_ios, chrome_android]
149
+ referer_strategies:
150
+ - self_root
151
+ - google_search
152
+ - none
153
+ url_transform_order:
154
+ - original
155
+ - mobile_subdomain
156
+ fallback_when_challenge:
157
+ - playwright_mcp
158
+ - playwright_real_chrome
159
+ notes: |
160
+ When detector returns low-confidence results we land here. Broad,
161
+ conservative grid. Evidence from these runs should feed observations/
162
+ for eventual profile promotion.